注册 登录 进入教材巡展
#

出版时间:2016年8月

出版社:清华大学出版社

以下为《数据结构与算法》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 清华大学出版社
  • 9787302432166
  • 1-1
  • 151125
  • 16开
  • 2016年8月
  • 工学
  • 软件工程
  • TP311.12
  • 计算机
  • 本专科、高职高专
内容简介
本书把数据结构的原理和算法分析技术有机地结合在一起,系统地介绍各种数据结构及各种数据结构的相关算法,使用C语言作为算法描述语言,通过C语言实现了具体算法,能够更好地让学生理解各种数据结构的基本描述方法,借助抽象数据类型,从逻辑结构的角度系统地介绍线性表、栈、队列、串、数组、矩阵、广义表、二叉树、树和图等各种基本数据结构;从算法的角度讨论查找方法和排序算法;从应用的角度介绍了一些具体的应用在C语言下的代码实现。
全书共分三部分: 第1部分(第1章)为基本概念介绍部分,介绍数据结构、抽象数据类型以及算法的基本概念;第2部分(第2~8章)为基本数据结构部分,重点介绍线性表、栈、队列、串、数组、矩阵、广义表、二叉树、树和图等各种基本数据结构,并且附带有具体的算法实现的代码;第3部分(第9章和第10章)为算法应用设计,重点介绍顺序查找、折半查找、插值查找、斐波那契查找、分块查找等静态查找的具体算法,介绍在二叉排序树、平衡二叉树上的动态查找算法以及哈希表查找算法等。全书提供了大量应用实例,每章后均附有习题。
本书适合作为高等院校计算机、软件工程专业高年级本科生、研究生的教材,同时可供对数据结构比较熟悉并且对软件设计有所了解的开发人员、广大科技工作者和研究人员参考
目录
Contents第1章绪论1
1.1数据结构的概念1
1.1.1为什么要学习数据结构1
1.1.2有关概念和术语4
1.1.3数据结构课程的内容6
1.2数据类型与抽象数据类型7
1.2.1数据类型7
1.2.2抽象数据类型7
1.3算法和算法分析8
1.3.1算法特性8
1.3.2算法描述9
1.3.3算法性能分析与度量9
第2章线性表11
2.1线性表的逻辑结构11
2.1.1线性表的定义11
2.1.2线性表的基本操作11
2.2线性表的顺序存储及运算实现12
2.2.1顺序表12
2.2.2顺序表上基本运算的实现14
2.2.3顺序表应用举例18
2.3线性表的链式存储和运算实现20
2.3.1单链表20
2.3.2单链表上基本运算的实现22
2.3.3循环链表28
2.3.4双向链表29
2.3.5静态链表302.3.6单链表应用举例32
2.4顺序表和链表的比较34
◆数据结构与算法目录第3章栈和队列36
3.1栈36
3.1.1栈的定义及基本操作36
3.1.2栈的存储实现和操作实现37
3.2栈的应用举例40
3.3队列50
3.3.1队列的定义及基本运算50
3.3.2队列的存储实现及运算实现50
3.4队列应用举例56
习题59
第4章串60
4.1串及基本运算60
4.1.1串的基本概念60
4.1.2串的基本运算60
4.2串的定长度顺序存储及基本运算62
4.2.1串的定长顺序存储62
4.2.2定长顺序串的基本运算63
4.2.3模式匹配64
4.3串的堆存储结构69
4.3.1串名的存储映像69
4.3.2堆存储结构71
4.3.3基于堆结构的基本运算71
习题73
第5章数组、特殊矩阵和广义表74
5.1多维数组74
5.1.1数组的逻辑结构74
5.1.2数组的内存映像74
5.2特殊矩阵的压缩存储77
5.2.1对称矩阵77
5.2.2三角矩阵78
5.2.3带状矩阵79
5.3稀疏矩阵80
5.3.1稀疏矩阵的三元组表存储80
5.3.2稀疏矩阵的十字链表存储86
5.4广义表92
5.4.1广义表的定义和基本运算92
5.4.2广义表的存储93
5.4.3广义表的基本操作的实现95
习题99
第6章二叉树101
6.1定义与性质101
6.1.1二叉树的基本概念101
6.1.2二叉树的主要性质103
6.2基本操作与存储实现104
6.2.1二叉树的存储104
6.2.2二叉树的基本操作及实现107
6.3二叉树的遍历110
6.3.1二叉树的遍历方法及递归实现110
6.3.2二叉树遍历的非递归实现112
6.3.3由遍历序列恢复二叉树116
6.3.4不用栈的二叉树遍历的非递归方法118
6.4线索二叉树118
6.4.1线索二叉树的定义及结构118
6.4.2线索二叉树的基本操作实现120
6.5二叉树的运用126
6.5.1二叉树遍历的运用126
6.5.2最优二叉树——哈夫曼树129
习题135
第7章树137
7.1树的概念与表示137
7.1.1树的定义及相关术语137
7.1.2树的表示138
7.2树的基本操作与存储139
7.2.1树的基本操作139
7.2.2树的存储结构140
7.3树、森林与二叉树的转换143
7.3.1树转换为二叉树143
7.3.2森林转化为二叉树144
7.3.3二叉树转换为树和森林145
7.4树和森林的遍历146
7.4.1树的遍历146
7.4.2森林的遍历147
7.5树的应用147
7.5.1判定树147
7.5.2集合的表示149
7.5.3关系等价求等价类问题151
习题152
第8章图153
8.1图的定义和术语153
8.1.1图的定义153
8.1.2图的相关术语153
8.1.3图的基本操作156
8.2图的存储表示157
8.2.1邻接矩阵157
8.2.2邻接表159
8.2.3十字链表161
8.2.4邻接多重表163
8.3图的遍历165
8.3.1深度优先搜索165
8.3.2广度优先搜索167
8.4图的连通性169
8.4.1无向图的连通性169
8.4.2有向图的连通性169
8.4.3生成树和生成森林170
8.4.4关结点和重连通分量172
8.5最小生成树175
8.5.1最小生成树的基本概念175
8.5.2构造最小生成树的Prim算法176
8.5.3构造最小生成树的Kruskal算法178
8.6最短路径181
8.6.1从一个源点到其他各点的最短路径181
8.6.2每一对顶点之间的最短路径183
8.7有向无环图及其应用186
8.7.1有向无环图的概念186
8.7.2AOV网与拓扑排序187
8.7.3AOE网与关键路径192
习题196
第9章查找197
9.1基本概念与术语197
9.2静态查找表199
9.2.1静态查找表结构199
9.2.2顺序查找200
9.2.3有序表的折半查找201
9.2.4有序表的插值查找和斐波那契查找203
9.2.5分块查找205
9.3动态查找表205
9.3.1二叉排序树205
9.3.2平衡二叉树210
9.3.3B-树和B 树216
9.4哈希表查找(杂凑法)223
9.4.1哈希表与哈希方法223
9.4.2常用的哈希函数224
9.4.3处理冲突的方法225
9.4.4哈希表的查找分析229
习题230
第10章排序231
10.1基本概念231
10.2插入排序231
10.2.1直接插入排序231
10.2.2折半插入排序233
10.2.3表插入排序234
10.2.4希尔排序236
10.3交换排序238
10.3.1冒泡排序238
10.3.2快速排序239
10.4选择排序241
10.4.1简单选择排序242
10.4.2树型选择排序242
10.4.3堆排序243
10.5二路归并排序246
10.6基数排序248
10.6.1多关键码排序248
10.6.2链式基数排序248
10.7外部排序251
10.7.1外部排序的方法251
10.7.2多路平衡归并的实现253
习题255