目录 1
第1章概论 1
1.1基本概念和术语 1
1.1.1 逻辑结构 2
1.1.2存储结构 4
1.2算法的描述和算法的分析 5
习题 8
第2章线性表 10
2.1 线性表的逻辑结构 10
2.2线性表的顺序存储结构 11
2.2.1顺序表 11
2.2.2顺序表的基本运算 13
2.3 线性表的链式存储结构 18
2.3.1 单链表 19
2.3.2循环链表 28
2.3.3双向链表 29
2.4顺序表和链表的比较 31
习题 32
第3章栈和队列 35
3.1 栈 35
3.1.1栈的定义和基本运算 35
3.1.2 顺序栈 36
3.1.3链栈 39
3.2 队列 41
3.2.1 队列的定义和基本运算 41
3.2.2 顺序队列 42
3.2.3链队列 46
*3.3 栈和队列的应用 47
习题 50
第4章 串 52
4.1 串及其运算 52
4.1.1 串的基本概念 52
4.1.2串的基本运算 53
4.2 串的存储结构 54
4.2.1 串的顺序存储 54
4.2.2串的链式存储 55
*4.2.3 串的运算 56
习题 58
第5章多维数组和广义表 60
5.1多维数组 60
5.2矩阵的压缩存储 62
5.2.1特殊矩阵 62
5.2.2稀疏矩阵 65
*5.3广义表的概念 69
习题 71
第6章树和二叉树 73
6.1 树的概念 73
6.2二叉树 76
6.2.1二叉树的定义 76
6.2.2二叉树的性质 77
6.2.3二叉树的存储结构 79
6.3二叉树的遍历 82
6.4线索二叉树 87
6.5树和森林 92
6.5.1树、森林和二叉树的转换 92
6.5.2树的存储结构 94
6.5.3树的遍历 97
6.6.1 哈夫曼树和哈夫曼算法 98
*6.6哈夫曼树 98
6.6.2 哈夫曼编码 102
习题 105
第7章 图 109
7.1 图的概念 109
7.2图的存储结构 113
7.2.1邻接矩阵 113
7.22邻接表 115
7.3 图的遍历 118
7.3.1深度优先遍历 118
7.3.2广度优先遍历 121
*7.4生成树 123
7.4.1生成树的概念 123
7.4.2最小生成树 125
习题 128
第8章排序 131
8.1 基本概念 131
8.2插入排序 133
8.2.1 直接插入排序 133
8.2.2希尔排序 135
8.3交换排序 138
8.3.1 冒泡排序 138
8.3.2快速排序 140
8.4选择排序 143
8.4.1直接选择排序 143
8.4.2堆排序 144
8.5归并排序 148
8.6.1箱排序 150
*8.6分配排序 150
8.6.2基数排序 151
8.7排序方法的比较和选择 154
习题 156
第9章查找 159
9.1 基本概念 159
9.2线性表的查找 160
9.2.1 顺序查找 160
9.2.2二分查找 162
9.2.3分块查找 165
9.3树上的查找 167
9.4散列技术 174
9.4.1散列表的概念 175
9.4.2散列函数的构造 176
9.4.3冲突的处理 178
9.4.4散列表上的运算 182
习题 185
附录上机实习指导材料 187
A.1 上机实习一 187
A.2上机实习二 188
A.3 上机实习三 190
A.4上机实习四 192
A.5 上机实习五 194
A.6上机实习六 197
A.7上机实习七 199
A.8上机实习八 201
A.9上机实习九 205
A.1 0 上机实习十 209
主要参考文献 213