发表于2024-12-15
面向算法设计的数据结构(C++语言版) pdf epub mobi txt 电子书 下载
(1)基于抽象数据类型讲解数据结构,以“积木式”组件方案构建程序。
(2)以算法分析为导向,以算法效率为准绳,实现数据结构的算法性能提升。
(3)以C++语言描述程序,遵循C++11标准。
(4)以标准模板库(STL)高效地编写C++程序代码。
本书按照计算机发展的时间和历史,从理论到器件,从简单器件到复杂器件,由浅到深,详细描述计算机内部各种部件的原理和应用。本书学术思想新颖*面,很多内容是国内书上*一次出现,主要描述计算机数字和逻辑的基本原理及理论,如数字与逻辑的概念,数制、运算、编码和数字系统,逻辑门,布尔代数和逻辑化简,组合逻辑,组合逻辑电路函数,触发器和相关器件,计数器,移位寄存器,内存和外存,微处理器、计算机和总线,数字信号处理,集成电路技术,单片式计算机,计算机的发展与理论,错误检测与纠错代码。另外本书还有附录,包括本书关键术语、2的幂次表、数量级表等,本书的*后是参考文献,以便读者今后在程序设计和计算机及处理器的设计时查阅。本书适合作为高等院校计算机专业及相关专业本科生及研究生的教材,也可以作为自学者和开发者的参考用书。
第1章算法
1.1概述
1.2[实例]二分查找
1.3程序性能与算法分析
1.3.1时间复杂度
1.3.2空间复杂度
1.4渐近记号
1.5[技巧]阶的快速比较*
1.5.1加和型无穷大量阶的比较
1.5.2乘积型无穷大量阶的比较
1.5.3对数型无穷大量阶的比较
1.6习题
第2章抽象数据类型
2.1概述
2.2[实例]在数据集中查找给定值
2.2.1缺点一:长度受限制
2.2.2缺点二:有序则难变
2.2.3缺点三:查变难两全
2.2.4查找问题的抽象数据类型视角
2.3数据库与数据集
2.3.1数据库
2.3.2数据集
2.4功能与实现
2.4.1向量的伸缩
2.4.2有序向量实现
2.4.3无序向量实现
2.4.4对比
2.5[技巧]组装使用
2.6STL容器一览
2.7设计模式
2.7.1迭代器
2.7.2适配器
2.7.3组合
2.8习题
第3章向量
3.1概述
3.2[使用]vectoz
3.3vector的简要实现
3.4加倍技术*
3.5[技巧]物理存储与进制换算
3.5.1一维数组
3.5.2二维数组
3.5.3多维向量
3.6[技巧]自然数映射与下标
3.7[实例]矩阵的向量实现
3.7.1矩阵的简易实现
3.7.2稀疏矩阵
3.8习题
第4章递归
4.1概述
4.2[技巧]递归设计与归纳证明
4.3递归与进程模型
4.4递归算法性能分析
4.5[实例]排列生成器*
4.5.1利用vector传值实现
4.5.2利用vector引用实现
4.6[实例]乐高铺砖
4.7习题
第5章栈
5.1概述
5.2[使用]stack
5.3stack的简要实现
5.4[技巧]逻辑表达式优化
5.5[实例]路径搜索
5.6习题
第6章队列
6.1概述
6.2[使用]queue
6.3[技巧]循环向量设计
6.3.1使用两个位置指示
6.3.2使用计数信息
6.4queue的简要实现
6.5[实例]贾宪三角
6.6[技巧]排队组织与内蕴次序
6.7习题
第7章链
7.1概述
7.2[使用]list
7.3[技巧]用于链接的指针
7.3.1利用指针实现链接功能
7.3.2使用真实链首元素指针
7.3.3使用哑结点解决空链判断问题
7.4链的变种
7.4.1单链
7.4.2单循环链
7.4.3双循环链
7.5list的简要实现
7.6[技巧]基于归纳的初始条件选取
7.7[实例]归并排序
7.8习题
第8章二叉树
8.1概述.
8.2二叉树与树
8.3[技巧]二叉树遍历
8.4[技巧]递归处理二叉树
8.5[实例]二叉查找树
8.5.1特性
8.5.2查找
8.5.3插入
8.5.4:删除
8.5.5迭代器
8.5.6效率
8.6习题
第9章集合
9.1概述
9.2[使用]set与multiset
9.3[实例]寻找宝藏
9.4[技巧]哨兵
9.4.1线性查找中的哨兵
9.4.2二叉查找树中的哨兵
9.5[技巧]集合与序关系
9.5.1排序
9.5.2中位数
9.6[技巧]不相交集
9.7习题
第10章优先级队列
10.1概述
10.2[使用]priority—queue
10.3[技巧]维护最大元
10.4priority-queue的简要实现
10.5[实例]堆排序
10.5.1数据组织与排序
10.5.2建堆算法
10.6[实例]Huffman编码
10.7习题
第11章图
11.1概述
11.2图的表示
11.2.1邻接矩阵
11.2.2邻接表
11.2.3选用
11.3图类
11.3.1有向图类
11.3.2加权有向图类
11.3.3加权无向图类
11.4f技巧]编号与反向映射
11.5[技巧]DFS和BFS
11.5.1深度优先搜索
11.5.2广度优先搜索
11.5.3若干应用
11.6[实例]最短路径*
11.6.1Diiikstra算法
11.6.2Bellman—Ford—Moore算法
11.6.3Floyd—Warshall算法
11.7[实例]最小生成树
11.7.1Kruskal算法
11.7.2Prim算法
11.8习题
第12章实验
12.1多维求和
12.1.1一维部分和
12.1.2实验要求
12.1.3评注与引申
12.2幻方计数
12.2.1排列
12.2.2实验要求
12.2.3评注与引申
12.3随机行走
12.3.1伪随机数生成
12.3.2实验要求
12.3.3评注与引申
12.4纸牌游戏
12.4.1可数集
12.4.2实验要求
12.4.3评注与引申
12.5迷宫生成
12.5.1隔板型迷宫
12.5.2实验要求
12.5.3评注与引申
12.6数据压缩
12.6.1.存储数据
12.6.2实验要求
12.6.3评注与引申
12.7会场安排
12.7.1时间格式
12.7.2实验要求
12.7.3评注与引申
12.8排序测试
12.8.1随机置换
12.8.2实验要求
12.8.3评注与引申
附录A头文件
A.1计时类
A.2book.h
附录B中文参考书目
B.1国内数据结构教材
B.2数据结构教材(翻译版)
B.3算法教材(翻译版)
英文参考文献
范文澜曾云“板凳要坐十年冷”, Peter Norvig也写过一篇异曲同工的Teach Yourself Programming in Ten Years妙文. 尽管一般人不可能用十年去培养非常专业的功底, 但我们希望在有限的课程时间内培养出学生的基本技能, 并为他们打开程序设计这扇神奇之窗.那么如何尽快学会搭建程序呢? 乐高积木为我们提供了一种很好的思路, 学生只需使用基本的“积木式”组件便可迅速完成程序设计. 抽象数据类型正是这样的积木, 而C++的标准模板库(STL)已为我们准备好了.在学会组建程序的基础上, 我们要求从算法角度分析效率, 而抽象数据类型的简约性更利于我们在宏观上尽快给出优良的方案设计. 因此, 贯穿全书的主线是抽象数据类型的选择、使用和组合.我们特别强调在抽象数据类型选用时必须以算法分析为导向, 以算法效率为准绳. 对于以不同抽象数据类型为要素的实现方案, 其选择标准是完成整个方案所需的时空开销.此外, 我们还会关注同一抽象数据类型在不同数据结构实现下的性能差异. 在上述思想指导下, 本书力求给出一种全新的模式, 让学生尽快学会高效使用抽象数据类型, 最终为后续的算法设计课程打下坚实的基础.
。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
评分。。。。。。。。。。。。。
面向算法设计的数据结构(C++语言版) pdf epub mobi txt 电子书 下载