第1章 实验概述 1
1.1 数据结构的基本概念与C语言的实现 1
1.1.1 数据元素 1
1.1.2 数据与数据对象 2
1.1.3 数据结构 3
1.1.4 数据类型 3
1.1.5 抽象数据类型 5
1.2 问题的求解与C语言的实现架构 7
1.2.1 问题的求解与实现 7
1.2.2 C语言的实现架构 9
1.2.3 应用程序主菜单的设计 11
1.3 C语言实现的相关技术 14
1.3.1 程序设计的原则 14
1.3.2 数据基本属性与数据处理 15
1.3.3 数据结构与算法 15
1.3.4 数据结构的C语言描述 15
第2章 线性表 20
2.1 内容要点 20
2.1.1 线性表的定义及基本运算 20
2.1.2 线性表的存储结构 21
2.2 线性表的实践 23
2.2.1 顺序表的实践 23
2.2.2 单链表的实践 29
2.2.3 双向链表的实践 39
第3章 栈和队列 46
3.1 内容要点 46
3.1.1 栈 46
3.1.2 队列 48
3.2 栈的实践 50
3.3 队列的实践 58
第4章 串 65
4.1 内容要点 65
4.1.1 串的定义及基本运算 65
4.1.2 串的存储结构 66
4.2 定长顺序串的实践 66
4.2.1 定长顺序串的存储结构 66
4.2.2 定长顺序串的实验 67
4.2.3 参考程序 69
4.3 堆串的实践 75
4.3.1 堆串的存储结构 75
4.3.2 堆串的实验 76
4.3.3 参考程序 78
第5章 数组和广义表 86
5.1 内容要点 86
5.1.1 数组 86
5.1.2 特殊矩阵、稀疏矩阵 87
5.1.3 广义表 90
5.2 数组的实践 92
5.3 稀疏矩阵的实践 96
5.4 广义表的实践 110
第6章 树和二叉树 117
6.1 内容要点 117
6.1.1 树 117
6.1.2 二叉树 118
6.1.3 树与二叉树的相互转换 120
6.1.4 哈夫曼树 121
6.2 二叉树的实践 121
6.2.1 顺序存储结构的实验 121
6.2.2 参考程序 125
6.2.3 链式存储结构的实验 132
6.2.4 参考程序 136
第7章 图 146
7.1 内容要点 146
7.1.1 图的定义及基本运算 146
7.1.2 图的存储结构 147
7.1.3 图的遍历 149
7.1.4 图的应用 149
7.2 图的实践 151
7.2.1 图的建立及遍历 151
7.2.2 图的应用实践 167
第8章 查找 181
8.1 内容要点 181
8.1.1 查找的基本概念 181
8.1.2 顺序查找 182
8.1.3 折半查找 182
8.1.4 分块查找 182
8.1.5 二叉排序树查找 182
8.1.6 平衡二叉树查找 183
8.1.7 哈希表查找 183
8.2 查找的实践 183
8.2.1 基于线性表的查找 183
8.2.2 基于树结构的查找 187
8.2.3 基于计算的查找 192
第9章 内部排序 197
9.1 内容要点 197
9.1.1 排序的基本概念 197
9.1.2 记录序列的存储方式 198
9.2 内部排序的分类 198
9.2.1 插入排序 198
9.2.2 交换排序 199
9.2.3 选择排序 199
9.2.4 归并排序 201
9.2.5 分配类排序 201
9.3 内部排序的实践 201
9.3.1 基于插入排序的实践 201
9.3.2 基于交换排序的实践 205
9.3.3 基于选择排序的实践 207
9.3.4 基于归并排序的实践 210
9.3.5 基于分配类排序的实践 212
第10章 文件与外部排序 220
10.1 内容要点 220
10.1.1 文件的基本概念 220
10.1.2 C程序文件的基本操作 221
10.1.3 外存信息的存取 224
10.1.4 外部排序的基本方法 224
10.2 文件与外部排序的实践 228
10.2.1 文件操作实践 228
10.2.2 外部排序的实践 235
参考文献 246