第1章绪论1
1.1数据结构简介1
1.2基本术语3
1.3数据的逻辑结构4
1.4数据的存储结构6
1.5算法及算法分析6
1.5.1算法6
1.5.2算法效率分析7
习题一11
第2章线性表13
2.1线性表的定义与运算13
2.2线性表的顺序存储结构15
2.2.1顺序表15
2.2.2顺序表上基本操作的实现17
2.3线性表的链式存储结构21
2.3.1线性单链表21
2.3.2循环链表29
2.3.3双向链表30
2.4线性表项目实践32
习题二37
第3章栈和队列39
3.1栈39
3.1.1栈的定义和运算39
3.1.2栈的存储和实现41
3.2队列46
3.2.1队列的定义和运算46
3.2.2队列的顺序存储结构48
3.2.3队列的链式存储结构51
3.3栈和队列的项目实践54
习题三60
第4章串62
〖=BW(〗目录〖=〗4.1串的基本概念和存储结构62
4.1.1串的基本概念62
4.1.2串的存储结构64
4.2串基本运算的实现64
4.3模式匹配69
4.4串项目实践72
习题四74
第5章数组和广义表76
5.1数组的定义和运算76
5.2数组顺序存储结构77
5.3矩阵的压缩存储78
5.3.1特殊矩阵79
5.3.2稀疏矩阵81
5.4广义表91
5.4.1广义表的定义91
5.4.2广义表的存储结构94
5.5数组项目实践94
习题五96
第6章树与二叉树98
6.1树的定义和基本术语98
6.2二叉树99
6.2.1二叉树的定义100
6.2.2二叉树的性质101
6.2.3二叉树的存储结构及实现102
6.3遍历二叉树和线索二叉树106
6.3.1遍历二叉树106
6.3.2线索二叉树107
6.4树和森林108
6.4.1树的存储结构108
6.4.2森林与二叉树的转换110
6.4.3树和森林的遍历113
6.5哈夫曼树及其应用114
6.5.1哈夫曼树114
6.5.2哈夫曼编码116
6.6树项目实践116
习题六126
第7章图128
7.1图的定义和基本术语128
7.1.1图的定义128
7.1.2图的基本术语128
7.2图的存储结构130
7.2.1邻接矩阵存储130
7.2.2邻接表存储131
7.3图的遍历133
7.3.1深度优先遍历133
7.3.2广度优先遍历136
7.4图的最小生成树140
7.4.1生成树140
7.4.2最小生成树140
7.4.3普里姆算法140
7.5最短路径143
7.6图的项目实践145
习题七149
第8章查找150
8.1查找的基本概念150
8.2基于线性表的查找151
8.2.1顺序查找151
8.2.2折半查找154
8.2.3分块查找158
8.3基于树的查找161
8.3.1二叉排序树161
8.3.2平衡二叉树169
8.3.3B树170
8.4哈希表171
8.4.1哈希表的概念171
8.4.2哈希函数的构造方法172
8.4.3处理冲突的方法173
8.4.4哈希表的查找分析175
8.5查找项目实践176
习题八180
第9章排序181
9.1概述181
9.2插入排序181
9.2.1直接插入排序181
9.2.2折半插入排序183
9.2.3希尔排序185
9.3交换排序187
9.3.1冒泡排序187
9.3.2快速排序189
9.4选择排序191
9.4.1简单选择排序191
9.4.2堆排序193
9.5归并排序197
9.6基数排序198
9.6.1多关键字排序198
9.6.2基数排序199
9.7各种内部排序算法的比较201
9.7.1几种常用排序算法的比较201
9.7.2排序算法的选择201
9.8外排序202
9.9排序项目实践202
习题九208
参考文献209