本书以C语言设计与实现为数据结构的主要算法,内容包括线性表、栈和队列、串和数组、树、图、查找、排序等数据结构及相关操作,所有算法程序完全用纯C语言编写且均在VC++ 6.0下调试运行通过。
样章试读
目录
- 目录
前言
第1章 线性表 1
1.1 线性表的定义及基本运算 1
1.1.1 线性表的定义 1
1.1.2 线性表的基本运算 1
1.2 线性表的顺序存储结构 2
1.2.1 顺序表定义 2
1.2.2 顺序表基本运算 3
1.2.3 顺序表算法设计与实现 3
1.3 线性表的链式存储结构 8
1.3.1 单链表 8
1.3.2 循环双链表 15
第2章 栈和队列 24
2.1 栈 24
2.1.1 栈的定义 24
2.1.2 栈的基本运算 24
2.1.3 顺序栈 25
2.1.4 链栈 30
2.2 队列 36
2.2.1 队列的定义 36
2.2.2 队列的基本运算 36
2.2.3 环状队列 37
2.2.4 链队 43
第3章 串和数组 50
3.1 串 50
3.1.1 串的定义 50
3.1.2 串的基本运算 50
3.1.3 串的定长顺序存储结构 51
3.1.4 串的堆存储结构 58
3.2 数组 66
3.2.1 数组的定义及基本运算 66
3.2.2 矩阵的顺序存储结构 68
3.2.3 对称矩阵 72
3.2.4 上三角矩阵 75
3.2.5 三对角矩阵 77
3.2.6 三元组顺序表存储的稀疏矩阵 80
3.2.7 十字链表存储的稀疏矩阵 89
第4章 树 94
4.1 二叉树 94
4.1.1 二叉树的定义 94
4.1.2 二叉树(或树)的相关概念 94
4.1.3 二叉树的存储结构 95
4.1.4 二叉树的基本运算 98
4.1.5 二叉树的链式存储结构 99
4.1.6 线索二叉树 111
4.2 哈夫曼树 115
4.2.1 哈夫曼树定义 115
4.2.2 哈夫曼树及其编码 117
4.3 树简介 122
4.3.1 树的定义 122
4.3.2 树的存储结构 123
4.3.3 树转换为二叉树 124
第5章 图 131
5.1 图的基本概念 131
5.1.1 图的定义 131
5.1.2 图的相关术语 131
5.1.3 图的基本运算 134
5.2 图的存储结构 135
5.2.1 图的邻接矩阵存储结构 135
5.2.2 图的邻接表存储结构 140
5.3 图的遍历 146
5.3.1 图的遍历基本运算 146
5.3.2 图的遍历算法设计与实现 146
5.4 最小生成树和最短路径 154
5.4.1 最小生成树 154
5.4.2 最短路径 161
5.5 拓扑排序和关键路径 167
5.5.1 拓扑排序 167
5.5.2 关键路径 173
第6章 查找 182
6.1 查找的基本概念 182
6.1.1 查找的相关术语 182
6.1.2 基本查找算法 183
6.2 基本查找算法的设计与实现 185
6.2.1 顺序查找 185
6.2.2 折半查找 187
6.2.3 索引查找 190
6.2.4 二叉排序树查找 193
6.2.5 哈希查找 197
第7章 排序 203
7.1 排序的基本概念 203
7.1.1 排序的相关术语 203
7.1.2 基本排序算法 203
7.2 基本排序算法的设计与实现 205
7.2.1 插入排序 205
7.2.2 选择排序 212
7.2.3 交换排序 217
7.2.4 归并排序 222
7.2.5 基数排序 225
参考文献 229