目录 第1章绪论 1.1数据结构的基本概念 1.1.1数据结构的定义与研究对象 1.1.2数据结构在程序设计中的作用 1.1.3逻辑结构与存储结构 1.2抽象数据类型与C++类 1.2.1抽象数据类型的基本概念 1.2.2设计与实现: 无人驾驶汽车 1.3算法与算法分析 1.3.1算法的基本概念 1.3.2算法描述的工具 1.3.3算法评价与渐进复杂度思想 1.3.4算法的复杂度分析 1.4本章小结 本章习题 扩展阅读: 唐纳德·欧文·克努特和他的天书 第2章线性表 2.1线性表及其逻辑结构 2.1.1线性表的定义 2.1.2线性表的抽象数据类型定义 2.2线性表的顺序存储和实现 2.2.1线性表的顺序存储 2.2.2顺序表基本操作的实现 2.3线性表的链接存储和实现 2.3.1线性表的链接存储 2.3.2单链表 2.3.3单链表基本操作的实现 2.3.4双向链表 2.3.5循环链表 2.3.6静态链表 2.4顺序表与链表的比较 2.5可怕的死亡游戏 2.5.1一维数组 2.5.2顺序表 2.5.3循环链表 2.5.4数学建模 2.6本章小结 本章习题 扩展阅读: 复杂系统的计算机仿真方法 目录 数据结构与算法——C++实现(微课视频版) 第3章栈和队列 3.1引言 3.2栈 3.2.1栈的定义 3.2.2栈的顺序存储结构及其实现 3.2.3两栈共享空间 3.2.4栈的链接存储结构及其实现 3.3队列 3.3.1队列的定义 3.3.2队列的顺序存储结构及其实现 3.3.3双端队列 3.3.4队列的链接存储结构及其实现 3.4栈和队列的应用 3.4.1数制转换 3.4.2函数的调用与递归 3.4.3表达式求值 3.4.4魔王语言翻译官 3.5本章小结 本章习题 扩展阅读: 排队论 第4章串和数组 4.1引言 4.2字符串与模式匹配 4.2.1字符串的逻辑结构 4.2.2字符串的存储结构 4.2.3模式匹配 4.3数组和矩阵的压缩存储 4.3.1数组与矩阵 4.3.2特殊矩阵的压缩存储 4.3.3稀疏矩阵的压缩存储 4.4本章小结 本章习题 扩展阅读: 暴力破解 第5章树和二叉树 5.1引言 5.2树与树的存储结构 5.2.1树的基本概念 5.2.2树的逻辑结构 5.2.3树的存储结构 5.3二叉树的逻辑结构 5.3.1二叉树的基本概念 5.3.2二叉树的基本性质 5.3.3二叉树的抽象数据类型 5.3.4二叉树的遍历 5.3.5二叉树的构造 5.4二叉树的存储结构 5.4.1顺序存储结构 5.4.2链式存储结构 5.4.3线索链表 5.5树、森林和二叉树的转换 5.5.1树和二叉树的对应关系 5.5.2树、森林和二叉树的相互转换 5.5.3树、森林和二叉树遍历操作的关系 5.6哈夫曼树和哈夫曼编码 5.6.1哈夫曼树的定义 5.6.2哈夫曼树的构造 5.6.3前缀编码和哈夫曼编码 5.7本章小结 本章习题 扩展阅读: 树结构的设计模式——组合模式 第6章图 6.1引言 6.2图的定义和基本概念 6.2.1图的定义 6.2.2图的基本概念 6.2.3图的抽象数据类型 6.3图的存储 6.3.1邻接矩阵 6.3.2邻接表 6.4图的遍历 6.4.1深度优先遍历 6.4.2广度优先遍历 6.5图的典型应用 6.5.1最小生成树 6.5.2最短路径 6.5.3有向无环图及其应用 6.6本章小结 本章习题 扩展阅读: 艾兹格·W.迪杰斯特拉 第7章查找 7.1查找的基本概念 7.2线性表的查找 7.2.1顺序查找 7.2.2折半查找 7.3树表的查找技术 7.3.1二叉排序树 7.3.2平衡二叉树 7.4散列表 7.4.1散列表的概念 7.4.2常用的散列函数 7.4.3处理冲突的方法 7.4.4散列表的查找分析 7.5B树 7.5.1B树的概念与查找 7.5.2B树的插入、构造和删除 7.6本章小结 本章习题 扩展阅读: 启发式搜索算法 第8章排序 8.1排序的基本概念 8.2插入排序 8.2.1直接插入排序 8.2.2希尔排序 8.3交换排序 8.3.1冒泡排序 8.3.2快速排序 8.4选择排序 8.4.1简单选择排序 8.4.2堆排序 8.5归并排序 8.6分配排序 8.6.1桶式排序 8.6.2基数排序 8.7本章小结 本章习题 扩展阅读: 影响世界进步的十大经典算法