算法与数据结构(C++语言版)
全新正版 假一赔十 可开发票
¥
37.33
6.7折
¥
56
全新
库存3件
作者 冯广慧 等
出版社 电子工业出版社
ISBN 9787121350719
出版时间 2019-01
装帧 平装
开本 16开
定价 56元
货号 1201781377
上书时间 2024-12-12
商品详情
品相描述:全新
商品描述
目录 章概论 1 1.1什么是数据结构 1 1.2基本概念和术语 4 1.3算法和算法分析 7 1.3.1算法的定义及特性 7 1.3.2算法的设计要求 8 1.3.3算法效率的衡量方法 9 1.3.4算法的时间复杂度 10 1.3.5算法的空间复杂度 15 1.4抽象数据类型 16 习题 18 第2章线性表 20 2.1线性表的类型定义 20 2.1.1线性表的概念 20 2.1.2线性表的抽象数据类型 21 2.2线性表的顺序表示和实现 22 2.2.1线性表的顺序表示 22 2.2.2顺序表基本运算的实现 23 2.3线性表的链式表示和实现 28 2.3.1线性表的链式表示 29 2.3.2单链表上基本运算的实现 32 2.4双链表 40 2.5循环链表 44 2.6线性表实现方法的比较 46 2.7算法设计举例 47 习题 52 第3章栈和队列 55 3.1栈 55 3.1.1栈的类型定义 55 3.1.2顺序栈的表示和实现 57 3.1.3链栈的表示和实现 60 3.2栈的应用举例 62 3.2.1十进制数转换为其他进制数 62 3.2.2表达式中括号的匹配检查 63 3.2.3表达式求值 64 3.2.4利用栈消除递归 72 3.3队列 77 3.3.1队列的类型定义 77 3.3.2循环队列―队列的顺序表示和实现 78 3.3.3链队列―队列的链式表示和实现 82 3.4算法设计举例 83 习题 87 第4章串 90 4.1串的基本概念 90 4.2串的表示和实现 91 4.2.1串的顺序存储结构 91 4.2.2串的链式存储结构 94 4.3串的模式匹配 95 4.3.1朴素的模式匹配算法 95 4.3.2KMP算法 96 习题 101 第5章数组 104 5.1数组的基本概念 104 5.2矩阵的压缩存储 107 5.2.1特殊矩阵 107 5.2.2稀疏矩阵 110 5.3算法设计举例 117 习题 121 第6章树和二叉树 124 6.1树的概念 124 6.2二叉树的概念和性质 126 6.2.1二叉树的概念和抽象数据类型 126 6.2.2二叉树的性质 129 6.3二叉树的表示和实现 131 6.3.1二叉树的存储结构 131 6.3.2二叉树的遍历运算 133 6.3.3二叉树的其他基本运算 140 6.4树和森林 142 6.4.1树的存储结构 143 6.4.2树、森林和二叉树的相互转换 146 6.4.3树和森林的遍历运算 148 6.4.4树和森林的其他基本运算 151 *6.5线索二叉树 154 6.5.1线索二叉树的概念 154 6.5.2线索二叉树的基本运算 157 6.6算法设计举例 161 习题 162 第7章树和二叉树的应用 166 *7.1表达式树 166 7.2哈夫曼树和哈夫曼编码 171 7.2.1哈夫曼树 171 7.2.2哈夫曼编码 175 7.3堆和优先级队列 178 7.3.1堆 178 7.3.2优先级队列 179 *7.4并查集 184 7.5算法设计举例 187 习题 189 第8章图 191 8.1图的概念 191 8.2图的存储结构 196 8.2.1邻接矩阵 196 8.2.2邻接表 200 *8.2.3十字链表 205 *8.2.4邻接多重表 205 8.3图的遍历 206 8.3.1深度优先遍历 207 8.3.2广度优先遍历 209 8.3.3图的连通分量和生成树 212 习题 213 第9章图的应用 217 9.1最小生成树 217 9.1.1最小生成树的概念 217 9.1.2Prim算法 218 9.1.3Kruskal算法 222 9.2有向无环图及其应用 225 9.2.1拓扑排序 225 9.2.2关键路径 230 9.3最短路径 236 9.3.1单源点最短路径 236 9.3.2每对顶点之间的最短路径 240 习题 243 0章集合与查找 247 10.1基本概念 247 10.2静态查找表上的查找 248 10.2.1顺序查找 248 10.2.2折半查找 250 10.2.3分块查找 254 10.3动态查找表上的查找 256 10.3.1二叉查找树 256 10.3.2平衡二叉树 263 *10.3.3B树 275 *10.3.4B+树 280 *10.3.5字典树 281 10.4算法设计举例 282 习题 285 1章散列表 288 11.1散列表的概念 288 11.2构造散列函数的方法 289 11.2.1直接定址法 289 11.2.2折叠法 289 11.2.3数字分析法 289 11.2.4平方取中法 290 11.2.5除留余数法 290 11.3解决冲突的方法 291 11.3.1闭散列法 291 11.3.2开散列法 293 11.4散列表的实现 294 11.4.1闭散列表的表示和实现 294 11.4.2开散列表的表示和实现 298 11.4.3闭散列表与开散列表的比较 302 11.5散列表的查找性能分析 302 习题 303 2章排序 306 12.1排序的基本概念 306 12.2插入排序 307 12.2.1直接插入排序 307 12.2.2折半插入排序 308 12.2.3希尔排序 309 12.3交换排序 310 12.3.1冒泡排序 310 12.3.2快速排序 311 12.4选择排序 315 12.4.1直接选择排序 315 12.4.2堆排序 316 *12.4.3锦标赛排序 320 12.5归并排序 320 *12.6基数排序 322 12.7各种内部排序方法的比较 324 *12.8外部排序 327 12.8.1置换选择排序 328 12.8.2多路归并排序 330 习题 331 附录A上机实验参考题目 334 参考文献 336 内容摘要 本书按照“全国硕士研究生招生考试计算机科学与技术学科联考计算机学科专业基础综合考试大纲”的要求编写,基本涵盖所有知识点,并加入部分高校及全国统一考试真题作为自测题,同时给出参考答案和题目解析。本书主要介绍各种常用的经典数据结构(如线性表、栈、队列、串、数组、树、图、集合等)和算法,并在时间复杂度和空间复杂度之间进行平衡与取舍。 本书将C++语言作为数据结构的算法描述语言,将数据结构与面向对象技术有机结合。书中的算法讲解都有完整的C++代码实现,并在Visual Studio 2010环境下编译通过。
— 没有更多了 —
本店暂时无法向该地区发货
以下为对购买帮助不大的评价