注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计数据结构与算法(C++版 第2版)

数据结构与算法(C++版 第2版)

数据结构与算法(C++版 第2版)

定 价:¥69.00

作 者: 游洪跃,唐宁九,孙界平,朱宏,张卫华 ... 著
出版社: 清华大学出版社
丛编项: 高等学校计算机课程规划教材
标 签: 暂缺

购买这本书可以去


ISBN: 9787302557746 出版时间: 2020-11-01 包装: 平装
开本: 16 页数: 396 字数:  

内容简介

  本书内容包括:线性表、栈和队列、串、数组和广义表、树、图、文件、算法设计技术与分析技术问题。

作者简介

  唐宁九,教授,硕士生导师,四川省计算机用户协会副秘书长,中国计算机用户协会理事,加拿大滑铁卢大学计算机系访问学者,主持、参与“863项目”、“九.五攻关项目”五项,主持、参与横向科研课题6项,在核心期刊上发表论文三十余篇,主编专著一本,主编教材一本,参加编写教材3本。

图书目录

目录
第1章绪论1
1.1数据结构的概念和学习数据结构的必要性1
1.2数据结构的基本概念2
1.2.1数据2
1.2.2数据元素和数据项2
1.2.3数据结构3
1.3抽象数据类型及其实现4
1.3.1数据类型4
1.3.2抽象数据类型4
1.4算法和算法分析4
1.4.1算法4
1.4.2算法分析5
1.5实例研究: 生命游戏7
1.6深入学习导读13
1.7习题13

第2章线性表14
2.1线性表的逻辑结构14
2.2线性表的顺序存储结构16
2.3线性表的链式存储结构23
2.3.1单链表23
2.3.2循环链表32
2.3.3双向链表35
2.3.4在链表结构中保存当前位置和元素个数39
2.4实例研究: 计算任意大整数的阶乘42
2.5深入学习导读45
2.6习题45

第3章栈和队列46
3.1栈46
3.1.1栈的基本概念46
3.1.2顺序栈47
3.1.3链式栈52
3.2队列59
3.2.1队列的基本概念59
3.2.2链队列60
3.2.3循环队列——队列的顺序存储结构65
3.2.4队列应用——显示二项式(a+b)i的系数70
3.3优先队列71
3.4实例研究: 表达式求值75
3.5深入学习导读79
3.6习题79

第4章串80
4.1串类型的定义80
4.2字符串的实现81
4.3字符串模式匹配算法86
4.3.1简单字符串模式匹配算法86
4.3.2首尾字符串模式匹配算法88
4.3.3KMP字符串模式匹配算法88
4.4实例研究: 文本编辑94
4.5深入学习导读103
4.6习题103

第5章数组和广义表105
5.1数组105
5.1.1数组的基本概念105
5.1.2数组的顺序表105
5.1.3数组的类模板定义107
5.2矩阵111
5.2.1矩阵的定义和操作111
5.2.2特殊矩阵113
5.2.3稀疏矩阵118
5.3广义表130
5.3.1基本概念130
5.3.2广义表的存储结构132
5.4实例研究: 稳定伴侣问题142
5.5深入学习导读145
5.6习题146

第6章树和二叉树147
6.1树的基本概念147
6.1.1树的定义147
6.1.2基本术语147
6.2二叉树149
6.2.1二叉树的定义149
6.2.2二叉树的性质151
6.2.3二叉树的存储结构153
6.3二叉树遍历162
6.3.1遍历的定义162
6.3.2遍历算法163
6.3.3二叉树遍历应用举例169
6.4线索二叉树174
6.4.1线索的概念174
6.4.2线索二叉树的实现176
6.5树和森林的实现184
6.5.1树的存储表示184
6.5.2树的显示191
6.5.3森林的存储表示192
6.5.4树和森林的遍历197
6.5.5将树和森林与二叉树相互转换199
6.6哈夫曼树与哈夫曼编码202
6.6.1哈夫曼树的基本概念202
6.6.2哈夫曼树构造算法203
6.6.3哈夫曼编码204
6.6.4哈夫曼树的实现205
6.7树的计数209
6.8树在等价关系上的应用212
6.9实例研究: 哈夫曼压缩算法216
6.10深入学习导读221
6.11习题222

第7章图223
7.1图的定义和术语223
7.2图的存储表示227
7.2.1邻接矩阵227
7.2.2邻接表232
7.3图的遍历240
7.3.1深度优先搜索240
7.3.2广度优先搜索242
7.4连通无向网的最小代价生成树244
7.4.1Prim算法244
7.4.2Kruskal算法247
7.5有向无环图及应用250
7.5.1拓扑排序251
7.5.2关键路径253
7.6最短路径257
7.6.1单源点最短路径问题258
7.6.2所有顶点之间的最短路径261
7.7实例研究: 周游世界问题——哈密顿圈263
7.8深入学习导读265
7.9习题265

第8章查找267
8.1查找的基本概念267
8.2静态表的查找267
8.2.1顺序查找267
8.2.2有序表的查找268
8.3动态查找表272
8.3.1二叉排序树272
8.3.2平衡二叉树282
8.3.3B树和B+树306
8.4哈希表309
8.4.1哈希表的概念309
8.4.2构造哈希函数的方法309
8.4.3处理冲突的方法309
8.4.4哈希表的实现311
8.5实例研究: 查找3个数组的最小共同元素316
8.6深入学习导读317
8.7习题317

第9章排序319
9.1概述319
9.2插入排序320
9.2.1直接插入排序320
9.2.2Shell排序321
9.3交换排序323
9.3.1冒泡排序323
9.3.2快速排序324
9.4选择排序327
9.4.1简单选择排序327
9.4.2堆排序328
9.5归并排序332
9.6基数排序336
9.6.1多关键字排序336
9.6.2基数排序337
9.7各种内部排序方法讨论339
9.8外部排序341
9.8.1外部排序基础341
9.8.2外部排序的方法342
9.9实例研究: 用堆实现优先队列343
9.10深入学习导读346
9.11习题346

第10章文件348
10.1主存储器和辅助存储器348
10.2各种常用文件结构348
10.2.1顺序文件348
10.2.2索引文件349
10.2.3哈希文件350
10.3实例研究350
10.3.1VSAM文件350
10.3.2多关键字文件351
10.4深入学习导读353
10.5习题353

第11章算法设计与分析354
11.1算法设计354
11.1.1递归算法354
11.1.2分治算法356
11.1.3动态规划算法357
11.1.4贪婪算法358
11.1.5回溯法359
11.1.6分支限界法361
11.2算法分析363
11.2.1递归分析363
11.2.2利用生成函数进行分析364
11.3实例研究: 图着色问题366
11.4深入学习导读368
11.5习题368

参考文献370

附录A调和级数371

附录B泊松分布372

附录C配套软件包文件索引373

附录D主流C++开发环境的使用方法379

本目录推荐