高等学校计算机课程规划教材数据结构与算法(C++版)(第2版)/游洪跃 唐宁九 孙界平
- ISBN:9787302557746
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:396
- 出版时间:2020-11-01
- 条形码:9787302557746 ; 978-7-302-55774-6
本书特色
本书所有算法都同时在Visual C++ 6.0、Visual C++ 2017、Dev-C++ v5.11和CodeBlocks v16.01中通过测试。读者可在******下载如下教学参考内容:(1)提供书中所有算法在Visual C++ 6.0、Visual C++ 2017、Dev-C++ v5.11和CodeBlocks v16.01开发环境中的测试程序,今后还会提供当时流行的C++开发环境的测试程序,每种开发环境还将建立工程的步骤,在工程建立新文件与向工程添加已有文件的方法的文档,以及打开一个工程的视频;还提供本书作者开发的软件包(包含所有本书所讲的数据结构与算法的类模板与函数模板)。 (2)提供教学用Power Point幻灯片ppt课件。 (3)提供所有习题的解答或参考程序。 (4)部分重要算法原理演示视频。 (5)提供至少8套数据结构与算法模拟试题及其解答,以供学生期末及其考研复习,也可供教师出考题时参考。 (6)提供数据结构与算法相关的其它资料(例如Dev-C++v5.11与CodeBlocks v16.01软件等免费C++编译器)。 “十二五”普通高等教育本科国家级规划教材 教育部微软精品课配套教材“十二五”普通高等教育本科国家级规划教材 教育部微软精品课配套教材
内容简介
本书内容包括:线性表、栈和队列、串、数组和广义表、树、图、文件、算法设计技术与分析技术问题。
目录
目录
第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
作者简介
唐宁九,教授,硕士生导师,四川省计算机用户协会副秘书长,中国计算机用户协会理事,加拿大滑铁卢大学计算机系访问学者,主持、参与“863项目”、“九.五攻关项目”五项,主持、参与横向科研课题6项,在核心期刊上发表论文三十余篇,主编专著一本,主编教材一本,参加编写教材3本。
-
乡村振兴新技术:新时代农村短视频编辑技术基础入门
¥12.8¥32.0 -
AI绘画+AI摄影+AI短视频从入门到精通
¥45.5¥79.8 -
企业AI之旅
¥43.5¥79.0 -
机器学习
¥59.4¥108.0 -
基于知识蒸馏的图像去雾技术
¥61.6¥88.0 -
软件设计的哲学(第2版)
¥51.0¥69.8 -
智能算法优化及其应用
¥52.4¥68.0 -
Photoshop图像处理
¥25.5¥49.0 -
R语言医学数据分析实践
¥72.3¥99.0 -
大模型推荐系统:算法原理、代码实战与案例分析
¥62.3¥89.0 -
剪映 从入门到精通
¥25.7¥59.8 -
游戏造梦师----游戏场景开发与设计
¥67.6¥98.0 -
SAR图像处理与检测
¥35.4¥49.8 -
人工智能
¥29.4¥42.0 -
中文版PHOTOSHOP 2024+AI修图入门教程
¥59.3¥79.0 -
WPS办公软件应用
¥25.2¥36.0 -
格拉斯曼流行学习及其在图像集分类中的应用
¥13.7¥28.0 -
轻松上手AIGC:如何更好地向CHATGPT提问
¥40.3¥62.0 -
元宇宙的理想与现实:数字科技大成的赋能与治理逻辑
¥61.6¥88.0 -
云原生安全:攻防与运营实战
¥66.8¥89.0