新書推薦:

《
95%的不舒服,呼吸能解决
》
售價:NT$
459.0

《
新加坡史:从夹缝求生到奇迹崛起
》
售價:NT$
653.0

《
甲骨文丛书·克里米亚战争
》
售價:NT$
571.0

《
大英博物馆:讲故事的中世纪神话艺术
》
售價:NT$
1010.0

《
大学问·古史中的神话:夏商周祖先神话溯源(一部三代造神指南,重构夏商周祖先神话)
》
售價:NT$
449.0

《
俗说矩阵——线性代数详解(Python+MATLAB)
》
售價:NT$
505.0

《
当代前沿社会理论十讲
》
售價:NT$
500.0

《
诸王的不列颠:从罗马帝国时代到联合王国的2000年
》
售價:NT$
959.0
|
編輯推薦: |
本书适用于计算机科学与技术、软件工程、大数据科学、电子信息与通信工程、自动化等信息相关专业的本科低年级学生作为教材学习之用。
|
內容簡介: |
“数据结构”是计算机专业的核心课程之一,也是其他非计算机专业且与信息处理相关学科的主要选修课程之一。在计算机科学中,“数据结构”是一门综合性的专业基础课程,为计算机硬件、操作系统、编译原理、计算机网络、数据库系统及其他系统程序和大型应用程序等奠定重要的理论和实践基础。当然,在当前“云、智、大、物、移”(即云计算、人工智能、大数据、物联网、移动互联网)的时代,这些主流技术的潮流也牵引着“数据结构”不断向前发展,例如:多维图像数据结构、分布式计算结构等;同时,也包括面向各个专门领域中特殊问题的数据结构的研究和发展。本书在详细讲解基础数据结构以夯实基础为目标的同时,力求链接各主要数据结构在人工智能算法的应用,加强与先进的人工智能算法的联系,提升读者适应新技术时代的知识衔接能力,推动我国在新工科背景下信息技术相关人才的实践能力。本书适用于计算机科学与技术、软件工程、大数据科学、电子信息与通信工程、自动化等信息相关专业的本科低年级学生作为教材学习之用。
|
關於作者: |
张海军,目前,担任IEEE ISPCE-Asia国际会议主席、NCAA国际会议大会主席、IEEE高级会员、中国计算机学会服务计算专委会委员、中国人工智能学会模式识别与机器智能专委会委员、国际知名SCI期刊IEEE Trans. on Consumer Electronics编委/Neural Computing & Applications亚洲区编委/Neurocomputing编委/Pattern Analysis & Applications编委、深圳市人工智能产业协会“AI 多媒体数据挖掘”首席科学家,亚太认知智能学会秘书长。他长期开展人工智能、模式识别、机器学习、大数据分析与建模等方向的研究。近年来,主持(/完成)国家自然基金面上项目、科技部重点研发计划课题、广东省杰出青年基金项目、市自然科学基金重点项目等15项;获得中国自动化学会自然科学一等奖1项、广东省自然科学二等奖1项、深圳市自然科学二等奖1项;拥有美国和日本发明专利各1项、申请国家发明专利30余项、登记软件著作权8项
|
目錄:
|
第1章绪论1
1.1数据结构及其相关概念1
1.1.1数据结构讨论范围1
1.1.2定义和术语5
1.1.3抽象数据类型12
1.2算法及其分析15
1.2.1算法和数据结构关系15
1.2.2算法定义16
1.2.3算法描述18
1.2.4算法分析21
1.3程序设计基础27
1.3.1程序和数据结构关系27
1.3.2静态存储和动态存储28
1.3.3结构体类型28
1.3.4输入/输出29
1.3.5引用类型参数29
1.3.6流程控制(分支、循环等)30
1.3.7递归31
1.3.8软件构造31
1.4数据结构的历史与发展32
1.5人工智能的历史与发展34
1.6智能算法应用36
本章小结38
习题38
与前沿技术链接39
科学家精神39
第2章线性表43
2.1线性表的逻辑结构43
2.1.1线性表的定义43
2.1.2线性表的逻辑特征44
2.2线性表的抽象数据类型44
2.3线性表的顺序存储实现45
2.3.1顺序表46
2.3.2顺序表基本运算的实现46
2.3.3顺序表的基础应用49
2.3.4顺序表的智能应用50
2.4线性表的链式存储实现52
2.4.1线性链表53
2.4.2静态链表58
2.4.3循环链表59
2.4.4双向链表60
2.4.5链表的智能应用61
2.5实际中存储结构的选择63
本章小结63
习题63
与前沿技术链接65
科学家精神65
第3章栈与队列67
3.1栈的定义67
3.1.1栈的定义和术语67
3.1.2栈的抽象数据类型68
3.2栈的存储与实现69
3.2.1栈的顺序存储与实现69
3.2.2栈的链式存储与实现70
3.2.3多栈共享的存储与实现70
3.3栈的应用71
3.3.1栈与递归过程71
3.3.2迷宫问题74
3.3.3表达式求值76
3.3.4栈在智能算法中的应用78
3.4队列的定义79
3.4.1队列的定义和术语79
3.4.2队列的抽象数据类型79
3.5队列的存储与实现79
3.5.1队列的链式存储与实现79
3.5.2队列的顺序存储与实现81
3.6队列的应用82
3.6.1约瑟夫出圈问题83
3.6.2舞伴问题83
3.6.3队列在智能算法中的应用84
本章小结85
习题85
与前沿技术链接87
科学家精神87
第4章串90
4.1串的定义90
4.1.1串的定义和术语90
4.1.2串的抽象数据类型91
4.2串的存储与实现92
4.2.1串的顺序存储与实现92
4.2.2串的堆分配存储与实现93
4.2.3串的链式存储与实现94
4.3模式匹配95
4.3.1朴素模式匹配算法95
4.3.2KMP算法——改进的模式匹配算法97
4.4串的智能算法应用102
本章小结103
习题103
与前沿技术链接104
科学家精神106
第5章数组与广义表108
5.1数组的定义108
5.1.1数组的定义和术语108
5.1.2数组的抽象数据类型109
5.2数组的存储与实现109
5.2.1数组的顺序存储109
5.2.2数组的压缩存储111
5.2.3数组的链式存储115
5.3数组的智能算法应用117
5.4广义表的定义118
5.4.1广义表的定义和术语118
5.4.2广义表的抽象数据类型119
5.5广义表的存储与实现120
5.5.1表头表尾分析法120
5.5.2子表分析法120
5.5.3广义表的操作121
5.6广义表的智能算法应用122
本章小结123
习题123
与前沿技术链接124
科学家精神124
第6章树126
6.1树的相关概念126
6.1.1树的定义和术语126
6.1.2树的抽象数据类型127
6.1.3树的应用和表示方法128
6.2二叉树130
6.2.1二叉树的有关概念130
6.2.2二叉树的存储与实现133
6.2.3二叉树的遍历134
6.3线索二叉树141
6.3.1线索二叉树的表示141
6.3.2二叉树的线索化142
6.3.3线索二叉树的遍历144
6.4树和森林145
6.4.1树的存储结构145
6.4.2树、森林与二叉树的转换148
6.4.3树和森林的遍历150
6.5树的应用152
6.5.1哈夫曼树152
6.5.2判定树160
6.5.3集合的树形结构表示162
6.6树的知识点结构164
6.7树的智能算法应用165
6.7.1决策树165
6.7.2梯度提升树(GBDT)特征工程166
6.7.3树形递归神经网络(Tree Recursive Neural Network)167
6.7.4深度神经网络压缩169
本章小结170
习题170
与前沿技术链接175
科学家精神175
第7章图177
7.1图的相关概念177
7.1.1图的定义和术语177
7.1.2图的抽象数据类型178
7.2图的存储结构179
7.2.1图的顺序存储179
7.2.2图的链式存储181
7.2.3有向图的十字链表存储183
7.2.4无向图的邻接多重表存储184
7.3图的遍历185
7.3.1深度优先遍历185
7.3.2广度优先遍历187
7.4图与树的联系190
7.4.1生成树190
7.4.2无向图与开放树191
7.4.3最小生成树191
7.5无向图的双连通性196
7.5.1无向图的双连通分量196
7.5.2求关节点算法196
7.6有向图的遍历和强连通性198
7.6.1有向图的遍历198
7.6.2强连通性199
7.7有向无环图的应用200
7.7.1拓扑排序200
7.7.2关键路径202
7.8最短路径205
7.8.1单源最短路径205
7.8.2每对顶点间的最短路径207
7.9图的智能算法应用209
7.9.1图与复杂网络209
7.9.2图与社区发现(GirvanNewman算法)210
7.9.3图与推荐系统(协同过滤算法)211
7.9.4盖板瑕疵检测212
7.10图的知识点结构214
本章小结215
习题215
与前沿技术链接221
科学家精神222
第8章查找225
8.1查找的相关概念225
8.1.1查找表的定义和术语225
8.1.2查找表的抽象数据类型225
8.1.3查找的分类226
8.2静态查找226
8.2.1顺序表的查找线性查找226
8.2.2有序表的查找折半查找228
8.2.3索引顺序表的查找分块查找229
8.3动态查找表230
8.3.1二叉排序树230
8.3.2平衡二叉树234
8.3.3B-树和B 树238
8.4哈希表243
8.4.1哈希表的有关概念243
8.4.2哈希函数的构造方法244
8.4.3处理冲突的方法247
8.4.4哈希表的查找和分析248
8.5查找的知识点结构及扩展252
8.5.1跳表252
8.5.2红黑树253
8.6查找的智能算法应用254
8.6.1最近邻查找算法254
8.6.2哈希查找算法255
8.6.3LSH算法256
本章小结257
习题257
与前沿技术链接258
科学家精神259
第9章内部排序262
9.1排序的相关概念262
9.1.1排序的定义和术语262
9.1.2内部排序263
9.2插入排序264
9.2.1直接插入排序264
9.2.2折半插入排序265
9.2.3表插入排序267
9.2.4希尔排序270
9.3冒泡排序和快速排序272
9.3.1冒泡排序272
9.3.2快速排序273
9.4选择排序276
9.4.1简单选择排序276
9.4.2树形选择排序277
9.4.3堆排序278
9.4.4归并排序280
9.4.5基数排序282
9.5排序算法的比较284
9.6排序的智能算法应用285
9.6.1检索模型285
9.6.2推荐系统287
本章小结288
习题289
与前沿技术链接290
科学家精神291
第10章文件与外部排序293
10.1文件及文件操作293
10.1.1文件的相关概念293
10.1.2文件操作294
10.1.3查询方式295
10.1.4文件分类295
10.2文件组织296
10.2.1顺序方式296
10.2.2索引方式298
10.2.3散列方式299
10.2.4链接方式文件和多重链表文件301
10.2.5ISAM文件302
10.2.6VSAM文件304
10.2.7UNIX文件306
10.3磁盘文件的归并分类307
10.4磁带文件的归并分类311
10.5外部排序的智能算法应用312
10.5.1分布式随机梯度下降313
10.5.2联邦学习314
本章小结315
习题315
与前沿技术链接316
科学家精神317
|
內容試閱:
|
“数据结构”被公认为计算机专业的“顶天立地”课程之一。学好这门课程将为后续课程的学习奠定坚实的基础,并对未来从事计算机行业工作时高效利用计算资源大有裨益。“数据结构”作为计算机相关专业的核心基础课程之一,伴随着计算机编程技术的发展而快速发展,其知识体系已相对完备。
然而,在当前大数据驱动的人工智能(AI)时代,尤其是通用人工智能时代,低年级本科生中经常出现“消化不了”和“吃不饱”两极分化的现象,并有持续加剧之势。基于此,本书的初衷是既覆盖知识基础(面向“消化不了”的学生群体),又链接最新的人工智能技术(面向“吃不饱”的学生群体)。同时考虑到不能僭越后续如“数据挖掘”“机器学习”“深度学习”等人工智能相关课程的内容,本书力图浅尝辄止,为低年级的本科生种下一颗人工智能的种子。实际上,在许多后期的研究和工作中,经常会发现某些先进的人工智能算法思想仍然与数据结构的基本思想一致,甚至直接借鉴而完成这些人工智能算法的设计。因此,为了加强数据结构和人工智能的联系,本书初步探索如何链接二者。
实现二者的链接,存在两种基本思路: 一是每种数据结构的实现都使用相关的人工智能算法举例,但是,这样的内容会相对晦涩难懂,这是因为初学者的前期基础薄弱和教材篇幅有限;二是每种数据结构仅以某些人工智能相关算法为例,不过多纠结实现细节,算法的思想与数据结构相关即可。本书基本采用后者视角,目的是使学生了解某些经典数据结构是大有用处的,在最先进的人工智能技术中有其身影,也为后续的人工智能相关课程奠定基础。
本书是在笔者经过三年的谨慎思考后,与合作者、学生(包括高年级本科生、硕士生和博士生)和其他高校相关任课教师一起讨论后着手组稿、成书的。实际上,一些经典的数据结构讲解及相关习题在互联网上都有更详细的解答,作为计算机相关专业的学生,自行学习并非难事,但是,教材的系统性和连贯性有助于读者理解其进化与应用思想。因此,本书的编写仍然遵循经典的数据结构知识脉络。全书共10章,第1章为绪论,介绍数据结构和算法的相关基础概念,普及数据结构和人工智能的发展史;第2~5章为线性结构,包括线性表、栈与队列、串、数组与广义表的相关概念和实现过程,以及它们在智能算法中的应用举例;第6、7章为代表性的非线性结构,即树和图,重点阐述其相关概念和各种算法的实现,并穿插智能算法的应用举例;第8、9章为查找和排序,介绍各种查找和排序算法的实现过程,并分别关联智能算法的应用;第10章为文件与外部排序,介绍文件和外部排序的概念及其算法实现。本书理论与实践并重,各章之后附有习题和相关的前沿技术科普,并简述部分科学家的生平事迹,旨在培养学生的科学家精神。
本书由张海军、马江虹和张正共同编写,由张海军统编全稿。其中,张海军作为本书发起人,负责全书大纲和基本内容的设计,并负责第1~5章的编写;马江虹负责第6、7章的编写;张正负责第8~10章的编写。同时,有多名学生参与协助本书的整理,诚挚感谢黄哲、于新蕊、孙慧玥、蔡恭灿、王润哲、张纯鑫、焦小倩、周海洋、林照楠、杨德照、李春阳、周奇凤、刘康喆、黄雨锐、温骏伟、樊红雨、魏佳明、何汶珏、林翰、陈松岭、吴清鹏等同学;感谢周栋梁和施鉴洋在本书编写前期提出的宝贵建议。这里,还要特别感谢黄虎杰教授、郑宏珍教授和叶允明教授,他们的指导和提供的课件资源为本书的编写提供了必要基础。清华大学出版社编辑为本书的出版提供了诸多帮助和条件,在此一并表示衷心的感谢。本书的出版得到了广东省高等教育教学研究和改革项目(编号: 粤教高函(2024)9号)、广东省普通高校创新团队项目(自然)(编号: 2022KCXTD038)、广东省自然科学基金杰出青年项目(编号: 2021B1515020088)、深圳市教育科学“十四五”规划2023年度课题人工智能专项项目(编号: rgzn23001)、哈尔滨工业大学研究生教育教学改革研究项目(编号: 23HX019)等的资助,在此表示衷心的感谢。
由于能力有限,加之本书是初步探索数据结构与智能算法链接之作,书中逻辑、技术整理、撰写难免有所疏漏,可能存在错误和不足之处,敬请广大读者批评斧正。衷心希望读者与作者共同探讨数据结构与人工智能的协同发展,共同促进“数据结构”课程教学的与时俱进及融合创新。
最后,本书秉承“尊重经典,夯实基础;数智步进,链接前沿;自主强化,广达融通”之宗旨,希望读者在学习计算机基础之初就种下一颗人工智能的种子,快速适应人工智能时代。
张海军
于哈尔滨工业大学(深圳)校园
2025年3月
|
|