第1章 数据结构入门与算法 1
1.1 数据结构的定义 2
1.1.1 数据与信息 2
1.1.2 数据的特性 3
1.1.3 数据结构的应用 4
1.2 算法 6
1.2.1 算法的条件 6
1.2.2 算法的表达方式 7
1.3 常见算法简介 9
1.3.1 分治法 9
1.3.2 贪心法 10
1.3.3 枚举法 11
1.3.4 帕斯卡三角形算法 13
1.3.5 质数求解算法 14
1.4 算法性能的分析 15
1.4.1 Big-Oh 15
1.4.2 Ω(omega) 18
1.4.3 θ(theta) 18
本章习题 19
第2章 数组结构 20
2.1 线性表简介 20
2.2 认识数组 22
2.2.1 二维数组 25
2.2.2 三维数组 28
2.2.3 n维数组 30
2.3 矩阵 31
2.3.1 矩阵相加 32
2.3.2 矩阵相乘 33
2.3.3 转置矩阵 35
2.3.4 稀疏矩阵 35
2.3.5 上三角形矩阵 38
2.3.6 下三角形矩阵 42
2.3.7 带状矩阵 45
2.4 数组与多项式 46
本章习题 47
第3章 链表 49
3.1 单向链表 49
3.1.1 建立单向链表 50
3.1.2 单向链表的遍历 51
3.1.3 单向链表中新节点的插入 53
3.1.4 单向链表中节点的删除 56
3.1.5 单向链表的反转 59
3.1.6 单向链表的串接 62
3.1.7 多项式链表表示法 65
3.2 环形链表 68
3.2.1 环形链表的建立与遍历 68
3.2.2 环形链表中新节点的插入 70
3.2.3 环形链表中节点的删除 73
3.2.4 环形链表的串接 76
3.2.5 稀疏矩阵的环形链表表示法 78
3.3 双向链表 80
3.3.1 双向链表的建立与遍历 80
3.3.2 双向链表中新节点的插入 84
3.3.3 双向链表中节点的删除 87
本章习题 90
第4章 堆栈 92
4.1 堆栈简介 92
4.1.1 用数组实现堆栈 93
4.1.2 用链表实现堆栈 96
4.2 堆栈的应用 99
4.2.1 递归算法 100
4.2.2 动态规划法 103
4.2.3 汉诺塔问题 105
4.2.4 回溯法——老鼠走迷宫 110
4.2.5 八皇后问题 114
4.3 算术表达式的表示法 116
4.3.1 中序法转为前序法与
后序法 117
4.3.2 前序法与后序法表达式
转为中序法表达式 122
4.3.3 中序法求值 124
4.3.4 前序法求值 125
4.3.5 后序法求值 126
本章习题 127
第5章 队列 130
5.1 认识队列 130
5.1.1 队列的基本操作 131
5.1.2 用数组来实现队列 131
5.1.3 用链表来实现队列 133
5.2 环形队列、双向队列与优先
队列 135
5.2.1 环形队列 136
5.2.2 双向队列 139
5.2.3 优先队列 142
本章习题 143
第6章 树结构 144
本章习题 192
第7章 图结构 196
本章习题 232
第8章 排序 235
本章习题 259
第9章 查找与哈希函数 263
本章习题 282
附录A 课后习题与参考答案 285
附录B 数据结构专有名词索引
(电子版见下载) 338
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录