第1章 绪论 1
1.1相关知识 1
1.1.1软件开发方法 1
1.1.2 Web程序设计 5
1.1.3基本概念 5
1.2例题解析 6
1.3算法的描述与实现 8
1.3.1算法的描述 8
1.3.2算法的实现 9
1.4实验环境介绍 9
1.4.1创建项目 9
1.4.2编辑源程序文件 11
1.4.3调试程序 13
习题1 15
第2章 线性表 19
2.1相关知识 19
2.2存储结构和基本运算 19
2.2.1线性表的顺序存储结构 19
2.2.2线性表的链式存储结构 21
2.3例题解析 29
2.4线性表实践 35
习题2 53
第3章 栈与队列 56
3.1相关知识 56
3.2存储结构和基本运算 56
3.2.1栈的顺序存储结构 56
3.2.2栈的链式存储结构 59
3.2.3队列的顺序存储结构 61
3.2.4队列的链式存储结构 63
3.3例题解析 66
3.4栈与队列实践 72
习题3 82
第4章 串 83
4.1相关知识 83
4.2存储结构和基本运算 83
4.3例题解析 88
4.4串实践 91
习题4 100
第5章 多维数组与广义表 102
5.1相关知识 102
5.1.1数组 102
5.1.2矩阵 102
5.1.3广义表 103
5.2存储结构和基本运算 103
5.2.1数组 103
5.2.2特殊矩阵 104
5.2.3广义表 105
5.3例题解析 107
5.4多维数组与广义表实践 112
习题5 122
第6章 树与二叉树 124
6.1相关知识 124
6.1.1树 124
6.1.2二叉树 124
6.2存储结构和基本运算 125
6.2.1树 125
6.2.2二叉树 125
6.3例题解析 126
6.4树与二叉树实践 132
习题6 143
第7章 图 146
7.1相关知识 146
7.2存储结构和基本运算 146
7.2.1邻接矩阵 147
7.2.2邻接表 155
7.2.3十字链表(有向图) 168
7.2.4邻接多重表(无向图) 168
7.3例题解析 168
7.4图实践 175
习题7 188
第8章 查找 190
8.1相关知识 190
8.2存储结构和查找方法 190
8.2.1静态表的查找 191
8.2.2动态树的查找 192
8.2.3哈希表的查找 194
8.3例题解析 195
8.4查找实践 202
习题8 218
第9章 排序 220
9.1相关知识 220
9.2数据类型和内部排序 220
9.2.1插入排序 222
9.2.2交换排序 227
9.2.3选择排序 229
9.2.4归并排序 231
9.2.5基数排序 233
9.2.6各种排序的测试结果和比较 235
9.3例题解析 239
9.4排序实践 248
习题9 253
第10章 典型算法实现 254
10.1贪婪算法 254
10.2分而治之算法 257
10.3动态规划 259
10.4回溯 262
10.5分支限界法 265
习题10 269
第11章 课程设计与ACM大赛 271
11.1课程设计要求 271
11.2课程设计实践例题 272
11.3 ACM大赛 276
11.3.1 ACM历史 276
11.3.2 ACM简要规则 277
11.3.3 ACM题目分类 277
11.3.4 ACM例题解析 279
习题11 289
附录A ACM大赛系统使用说明 290
附录B ACM大赛例题 296
参考文献 303