图书目录

目录

第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.601背包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