数据结构(C/C++版)
《数据结构(C/C++版)》针对采用C实现数据结构进行了全面的描述和深入的讨论。书中详细讨论了栈、队列、链表以及查找结构、高级树结构等功能,对裴波那契堆、伸展树、红黑树、2-3树、2-3-4树、二项堆、最小-最大堆、双端堆等新的数据结构进行了有效分析。书中对一些特殊形式的堆结构,诸如应用在双端优先队列中的最小-最大堆和双端堆的数据结构以及左高树、裴波那契堆、二项堆等数据结构,提供了经过编译和测试的程序和算法。书中还深入阐述了平摊复杂性问题,对大多数算法进行了时间复杂性的分析。
本书在编排上,注重理论与实践相结合,采用案例教学模式,突出实践环节,设置了任务描述、任务分析、准备知识、任务实施、知识链接、操作技巧、拓展提高、项目小结和项目考核等特色模块,意在提高学生的学习兴趣,促进学生的全面发展。
本书可作为高等院校计算机及相关专业的教材,也可作为成人教育和在职人员的培训教材,还可作为广大计算机爱好者的参考读物。
项目一 数据结构基本知识
任务:建立数学模型
任务描述
任务分析
准备知识
数据结构概述
基本术语
数据的存储结构
算法及算法分析
C语言预备知识
任务实施
项目小结
项目考核
项目二 线性表及其应用
任务一:利用顺序表对数据进行升序排序
任务描述
任务分析
准备知识
线性表概述
线性表的抽象数据类型和基本操作
线性表的顺序存储结构
任务实施
任务二:使用单链表对数据进行升序排序
任务描述
任务分析
准备知识
单链表
双向链表
循环链表
任务实施
项目小结
项目考核
项目三 栈的使用
任务:利用栈判断括号匹配情况
任务描述
任务分析
准备知识
栈的概述
栈的抽象数据类型和基本操作
栈的顺序存储结构
栈的链式存储结构
递归的概述
河内塔(Hanoi tower)问题
任务实施
项目小结
项目考核
项目四 队列及其应用
任务:使用队列模拟打印机打印顺序
任务描述
任务分析
准备知识
队列的概述
队列的抽象数据类型和基本操作
队列的顺序存储结构
顺序队列的改进——循环队列
队列的链式存储结构
任务实施
项目小结
项目考核
项目五 字符串及其应用
任务:使用字符串统计英文单词
任务描述
任务分析
准备知识
字符串的概述
字符串的抽象数据类型和基本操作
字符串的顺序存储结构
字符串的堆存储结构
字符串的块链存储结构
任务实施
项目小结
项目考核
项目六 树及二叉树
任务一:计算二叉树的前序 遍历序列
任务描述
任务分析
准备知识
树结构
树形结构的种类
树的相关术语
二叉树的概述
满二叉树和完全二叉树
二叉树的性质
二叉树的抽象数据类型和基本操作
顺序存储结构
链式存储结构
二叉树的遍历
线索二叉树的概述
中序线索二叉树的构造和遍历
任务实施
任务二:使用Huffman树编写 C语言程序
任务描述
任务分析
准备知识
霍夫曼树相关术语
霍夫曼树构造
任务实施
项目小结
项目考核
项目七 树、森林及二叉树
任务:实现深度为的树
任务描述
任务分析
准备知识
树的概述
树和二叉树的三个主要差别
森林的概述
树的抽象数据类型和基本操作
树的遍历
森林的遍历
树的存储结构
树与二叉树的相互转换
森林与二叉树的相互转换
K叉树
任务实施
项目小结
项目考核
项目八 图形结构
任务:实现图的遍历
任务描述
任务分析
准备知识
图的定义与基本术语
图的概述
图的相关术语
图的抽象数据类型和基本操作
邻接矩阵表示法
邻接表表示法
十字链表
邻接多重表
深度优先搜索
广度优先搜索
最短路径问题
单源最短路径问题
狄克斯特拉(Dikastra)算法
最小生成树
最小生成树的性质
构造最小生成树的算法
拓扑排序
AOV网
拓扑排序(Topological Sort)
任务实施
项目小结
项目考核
项目九 排序
任务:使用选择排序输出结果
任务描述
任务分析
准备知识
排序的概述
排序分类
直接插入排序
冒泡排序
直接选择排序
简单排序算法的时间代价对比
Shell排序
快速排序
归并排序
堆排序
多关键码排序
链式基数排序
任务实施
项目小结
项目考核
项目十 查找
任务:使用哈希法输出最大值
任务描述
任务分析
准备知识
查找的基本概念
顺序查找
二分查找
分块查找
二叉排序树
平衡二叉排序树
B树和B+树
哈希表的概述
哈希函数的构造方法
处理冲突的方法
哈希表的实现
哈希表的查找分析
任务实施
项目小结
项目考核
参考文献