目录
第1章绪论1
1.1导学1
1.1.1思维导图1
1.1.2重难点分析2
1.2案例3
1.3基础实验7
实验1.1判断一个大于2的正整数n是否为素数7
实验1.2数组遍历8
实验1.3冷热数据队列10
实验1.4数组元素删除14
1.4拓展实验15
实验1.5纸张尺寸15
实验1.6刷题统计17
实验1.7翻硬币18
第2章线性表20
2.1导学20
2.1.1思维导图20
2.1.2重难点分析21
2.2案例21
案例2.1线性表元素的插入操作21
案例2.2删除顺序表中指定值的所有元素23
案例2.3查找链表中的最大值24
案例2.4删除链表中满足区间值的结点26
2.3基础实验28
实验2.1顺序表L的所有元素逆置28
实验2.2两个递增的有序链表合并为一个递增的有序链表28
实验2.3求出A与B的交集,并存放在A链表中30
实验2.4链表原地逆转31
实验2.5猴子选大王(约瑟夫环问题)32
实验2.6查找链表中倒数第k个结点33
实验2.7删除链表中绝对值相等的结点34
2.4拓展实验36
实验2.8坐标变换36
实验2.9环形链表39
实验2.10LRU缓存40
第3章栈与队列44
3.1导学44
3.1.1思维导图44
3.1.2重难点分析44
3.2案例44
案例3.1数制转换44
案例3.2括号匹配47
案例3.3行编辑程序48
案例3.4表达式求值50
3.3基础实验52
实验3.1栈的顺序表示和实现52
实验3.2栈的链式表示和实现55
实验3.3队列的顺序表示和实现58
实验3.4队列的链式表示和实现61
3.4拓展实验64
实验3.5迷宫的求解64
实验3.6停车场管理69
实验3.7二十四点73
实验3.8机器翻译76
实验3.9拖拉机77
第4章串81
4.1导学81
4.1.1思维导图81
4.1.2重难点分析81
4.2案例82
案例4.1统计字符出现的频度82
案例4.2逆序存储84
案例4.3字符串的插入85
案例4.4查找子串87
4.3基础实验89
实验4.1KMP算法实现89
4.4拓展实验91
实验4.2QQ账户的申请与登录91
实验4.3基于KMP算法的网络入侵检测93
实验4.4子串简写96
实验4.5模板生成系统98
实验4.6字符串匹配102
第5章数组和广义表104
5.1导学104
5.1.1思维导图104
5.1.2重难点分析104
5.2案例105
案例5.1数列求和105
案例5.2区间删除106
案例5.3求链表倒数第m个元素107
案例5.4有序表的合并110
案例5.5一元多项式的运算112
5.3基础实验116
实验5.1二分查找116
实验5.2矩阵的压缩存储117
5.4拓展实验121
实验5.3检测点查询121
实验5.4统计子矩阵122
实验5.5矩阵运算124
实验5.6垒骰子126
第6章树130
6.1导学130
6.1.1思维导图130
6.1.2重难点分析130
6.2案例131
案例6.1二叉树的创建与遍历131
案例6.2列出叶子结点132
案例6.3二叉搜索树的插入、查找与删除135
6.3基础实验137
实验6.1计算二叉树的深度和结点个数137
实验6.2递归实现二叉树左、右子树交换139
实验6.3输入一个无序序列,创建一棵二叉排序树141
实验6.4判断一棵树是否为二叉排序树143
6.4拓展实验145
实验6.5用前序与中序遍历序列构造二叉树145
实验6.6网络延时146
实验6.7哈夫曼树150
实验6.8景区导游151
实验6.9飞机降落155
第7章图159
7.1导学159
7.1.1思维导图159
7.1.2重难点分析159
7.2案例160
案例7.1图的邻接矩阵存储及图初始化160
案例7.2图的邻接表存储及图初始化162
案例7.3图的广度优先搜索163
案例7.4图的深度优先搜索165
案例7.5拓扑排序167
案例7.6Prim算法生成最小生成树172
7.3基础实验175
实验7.1创建无向图175
实验7.2列出连通集176
实验7.3有向图深度优先搜索178
实验7.4求最短路径179
实验7.5图不连通方案181
实验7.6奇怪图的哈密顿回路问题183
实验7.7小动物逃亡问题185
实验7.8平均长度最大环问题189
7.4拓展实验191
实验7.9哈利·波特的考试191
实验7.10旅游规划194
实验7.11公路村村通197
实验7.12画图201
实验7.13最优配餐204
实验7.14最优灌溉208
实验7.15地铁修建211
第8章算法思想216
8.1导学216
8.1.1思维导图216
8.1.2重难点分析217
8.2案例217
案例8.1百钱买百鸡问题217
案例8.2组合枚举法219
案例8.3排列枚举法220
案例8.4指数枚举法222
案例8.5区间分治223
案例8.601背包223
案例8.7完全背包224
案例8.8普通贪心226
8.3基础实验227
实验8.1八皇后问题227
实验8.2分治法解决平面上最接近点对229
实验8.3多机调度问题230
实验8.4最大子序列和231
实验8.5最长上升子序列233
实验8.6最长公共子序列235
实验8.7分治法构建线段树238
8.4拓展实验243
实验8.8编辑距离243
实验8.9扑克游戏245
实验8.10最大子树和249
实验8.11宝物筛选252
实验8.12引水入城254
实验8.13保卫王国256
第9章查找261
9.1导学261
9.1.1思维导图261
9.1.2重难点分析262
9.2案例262
案例9.1顺序表的查找262
案例9.2有序表折半查找263
案例9.3二叉排序树查找263
案例9.4二叉排序树插入算法263
案例9.5平衡二叉树插入算法264
案例9.6B树查找算法266
案例9.7开放定址哈希表查找267
9.3基础实验267
实验9.1静态表查找267
实验9.2魔法书中的查找与插入268
实验9.3班级学生成绩查询系统270
实验9.4哈希表的基本操作272
实验9.5部落冲突275
实验9.6中序遍历树并判断是否为二叉搜索树277
9.4拓展实验278
实验9.7在线购物平台商品管理系统278
实验9.8社交网络用户管理系统283
实验9.9二叉排序树287
实验9.10扫雷289
实验9.11垦田计划292
第10章排序296
10.1导学296
10.1.1思维导图296
10.1.2重难点分析297
10.2案例297
案例10.1直接插入排序297
案例10.2折半插入排序297
案例10.3希尔排序298
案例10.4冒泡排序298
案例10.5快速排序298
案例10.6简单选择排序299
案例10.7堆排序299
案例10.8归并排序300
10.3基础实验300
实验10.1冒泡排序在整数数组中的应用300
实验10.2快速排序在字符串数组中的应用302
实验10.3归并排序在链表中的应用304
实验10.4堆排序在浮点数数组中的应用307
10.4拓展实验309
实验10.5寻找大富翁309
实验10.6蛇语翻译310
实验10.7小朋友排队312
实验10.8数位排序315
实验10.9第k个数316
附录A综合实验319
A.1文件加密解密319
A.2校园导航324
