实例介绍
【实例截图】
【核心代码】
目录
1. 数据结构和算法概述 PAGEREF _Toc85546055 \h 12
1.1 为什么要学习数据结构和算法 PAGEREF _Toc85546056 \h 12
1.2 数据结构和算法介绍 PAGEREF _Toc85546057 \h 13
1.3 数据结构和算法关系 PAGEREF _Toc85546058 \h 15
1.4 线性结构和非线性结构 PAGEREF _Toc85546059 \h 15
2. 栈 PAGEREF _Toc85546060 \h 16
2.1 栈的介绍 PAGEREF _Toc85546061 \h 16
2.2 栈的应用场景 PAGEREF _Toc85546062 \h 19
2.3 栈的快速入门 PAGEREF _Toc85546063 \h 19
2.4 栈实现计算器 PAGEREF _Toc85546064 \h 26
2.4.1 ArrayStack PAGEREF _Toc85546065 \h 26
2.4.2 main PAGEREF _Toc85546066 \h 35
3. 链表 PAGEREF _Toc85546067 \h 40
3.1 链表(Linked List)介绍 PAGEREF _Toc85546068 \h 40
3.2 单链表应用 PAGEREF _Toc85546069 \h 41
3.2.1 常见面试题 PAGEREF _Toc85546070 \h 49
3.3 双向链表应用场景 PAGEREF _Toc85546071 \h 51
3.4 单向环形链表应用场景 PAGEREF _Toc85546072 \h 58
3.5 单向环形链表介绍 PAGEREF _Toc85546073 \h 59
4. 稀疏数组和队列 PAGEREF _Toc85546074 \h 67
4.1 稀疏数组 PAGEREF _Toc85546075 \h 67
4.1.1 需求案例 PAGEREF _Toc85546076 \h 67
4.1.2 介绍 PAGEREF _Toc85546077 \h 68
4.1.3 实现步骤 PAGEREF _Toc85546078 \h 69
4.1.4 练习 PAGEREF _Toc85546079 \h 69
4.2 队列 PAGEREF _Toc85546080 \h 70
4.2.1 队列介绍 PAGEREF _Toc85546081 \h 70
4.2.2 数组模拟队列场景 PAGEREF _Toc85546082 \h 71
5. 递归 PAGEREF _Toc85546083 \h 75
5.1 递归概念 PAGEREF _Toc85546084 \h 75
5.2 递归解决的问题 PAGEREF _Toc85546085 \h 75
5.3 递归的规则 PAGEREF _Toc85546086 \h 75
5.4 递归(迷宫问题) PAGEREF _Toc85546087 \h 76
6. 排序算法 PAGEREF _Toc85546088 \h 83
6.1 排序算法介绍 PAGEREF _Toc85546089 \h 83
6.1.1 排序分类 PAGEREF _Toc85546090 \h 84
6.2 算法时间效率 PAGEREF _Toc85546091 \h 85
6.2.1 度量一个程序执行时间两种方法 PAGEREF _Toc85546092 \h 85
6.2.2 时间频度 PAGEREF _Toc85546093 \h 85
6.2.3 时间复杂度 PAGEREF _Toc85546094 \h 87
6.2.4 常见的时间复杂度 PAGEREF _Toc85546095 \h 88
6.2.5 平均和最坏时间复杂度 PAGEREF _Toc85546096 \h 91
6.3 基数排序 PAGEREF _Toc85546097 \h 92
6.3.1 介绍 PAGEREF _Toc85546098 \h 92
6.3.2 思想 PAGEREF _Toc85546099 \h 92
6.3.3 基数排序代码实现 PAGEREF _Toc85546100 \h 93
6.4 冒泡排序 PAGEREF _Toc85546101 \h 103
6.4.1 介绍 PAGEREF _Toc85546102 \h 103
6.4.2 冒泡排序实际应用 PAGEREF _Toc85546103 \h 104
6.5 快速排序 PAGEREF _Toc85546104 \h 106
6.5.1 介绍 PAGEREF _Toc85546105 \h 106
6.5.2 示意图 PAGEREF _Toc85546106 \h 106
6.6 插入排序 PAGEREF _Toc85546107 \h 109
6.6.1 介绍 PAGEREF _Toc85546108 \h 109
6.6.2 示意图 PAGEREF _Toc85546109 \h 110
6.7 选择排序 PAGEREF _Toc85546110 \h 111
6.7.1 介绍 PAGEREF _Toc85546111 \h 111
6.7.2 示意图 PAGEREF _Toc85546112 \h 112
6.7.3 源码实现 PAGEREF _Toc85546113 \h 112
6.8 希尔排序 PAGEREF _Toc85546114 \h 114
6.8.1 介绍 PAGEREF _Toc85546115 \h 114
6.8.2 示意图: PAGEREF _Toc85546116 \h 114
6.8.3 源码实现 PAGEREF _Toc85546117 \h 115
6.9 归并排序 PAGEREF _Toc85546118 \h 117
6.9.1 介绍 PAGEREF _Toc85546119 \h 117
6.9.2 示意图 PAGEREF _Toc85546120 \h 118
6.9.3 源码实现 PAGEREF _Toc85546121 \h 119
7. 查找算法 PAGEREF _Toc85546122 \h 122
7.1 线性查找算法 PAGEREF _Toc85546123 \h 122
7.2 二分查找算法 PAGEREF _Toc85546124 \h 123
7.2.1 二分查找算法原理 PAGEREF _Toc85546125 \h 124
7.2.2 二分查找代码 PAGEREF _Toc85546126 \h 124
7.3 插值查找算法 PAGEREF _Toc85546127 \h 126
7.3.1 插值查找算法原理 PAGEREF _Toc85546128 \h 126
7.3.2 插值查找代码 PAGEREF _Toc85546129 \h 127
7.4 黄金分割法算法(斐波那契算法) PAGEREF _Toc85546130 \h 128
7.4.1 介绍 PAGEREF _Toc85546131 \h 128
7.4.2 黄金分割法代码 PAGEREF _Toc85546132 \h 129
8. 哈希表 PAGEREF _Toc85546133 \h 132
8.1 哈希表基本介绍 PAGEREF _Toc85546134 \h 132
8.2 哈希表原理 PAGEREF _Toc85546135 \h 133
8.3 哈希表应用案例 PAGEREF _Toc85546136 \h 134
9. 树 PAGEREF _Toc85546137 \h 143
9.1 二叉树 PAGEREF _Toc85546138 \h 145
9.1.1 二叉树概念 PAGEREF _Toc85546139 \h 145
9.1.2 树示意图 PAGEREF _Toc85546140 \h 145
9.1.3 二叉树介绍 PAGEREF _Toc85546141 \h 146
9.1.4 二叉树应用案例 PAGEREF _Toc85546142 \h 148
9.1.5 二叉树 查询结点 PAGEREF _Toc85546143 \h 154
9.1.6 二叉树 删除结点 PAGEREF _Toc85546144 \h 167
9.2 顺序存储二叉树 PAGEREF _Toc85546145 \h 171
9.2.1 顺序存储二叉树概念 PAGEREF _Toc85546146 \h 171
9.2.2 顺序存储二叉树遍历 PAGEREF _Toc85546147 \h 172
9.3 线索化二叉树 PAGEREF _Toc85546148 \h 173
9.3.1 线索二叉树介绍 PAGEREF _Toc85546149 \h 174
9.3.2 线索二叉树应用案例 PAGEREF _Toc85546150 \h 175
9.3.3 遍历线索化二叉树 PAGEREF _Toc85546151 \h 176
10. 树结构应用 PAGEREF _Toc85546152 \h 189
10.1 赫夫曼树 PAGEREF _Toc85546153 \h 189
10.1.1 赫夫曼树介绍 PAGEREF _Toc85546154 \h 189
10.1.2 赫夫曼概念及理解 PAGEREF _Toc85546155 \h 189
10.1.3 赫夫曼示意图 PAGEREF _Toc85546156 \h 190
10.1.4 赫夫曼代码实现 PAGEREF _Toc85546157 \h 192
10.2 赫夫曼编码 PAGEREF _Toc85546158 \h 195
10.2.1 赫夫曼编码介绍 PAGEREF _Toc85546159 \h 195
10.2.2 赫夫曼编码原理 PAGEREF _Toc85546160 \h 196
10.2.3 赫夫曼编码-数据压缩 PAGEREF _Toc85546161 \h 198
10.2.4 赫夫曼编码-数据解压 PAGEREF _Toc85546162 \h 205
10.2.5 赫夫曼编码-文件压缩 PAGEREF _Toc85546163 \h 208
10.2.6 赫夫曼编码-文件解压 PAGEREF _Toc85546164 \h 209
10.3 二叉排序树 PAGEREF _Toc85546165 \h 209
10.3.1 需求分析 PAGEREF _Toc85546166 \h 209
10.3.2 思路分析 PAGEREF _Toc85546167 \h 209
10.3.3 二叉排序树介绍 PAGEREF _Toc85546168 \h 209
10.3.4 二叉排序树-创建和遍历 PAGEREF _Toc85546169 \h 214
10.3.5 二叉排序树-删除 PAGEREF _Toc85546170 \h 216
11. 多路查找树 PAGEREF _Toc85546171 \h 222
11.1 二叉树与B树 PAGEREF _Toc85546172 \h 222
11.1.1 二叉树问题分析 PAGEREF _Toc85546173 \h 222
11.1.3 B树介绍 PAGEREF _Toc85546175 \h 223
11.2 2-3树 PAGEREF _Toc85546176 \h 224
11.2.1 2-3树介绍 PAGEREF _Toc85546177 \h 224
11.2.2 2-3树应用场景 PAGEREF _Toc85546178 \h 224
11.3 B树、B 树、B*树 PAGEREF _Toc85546179 \h 225
11.3.1 B树介绍 PAGEREF _Toc85546180 \h 225
11.3.2 B 树介绍 PAGEREF _Toc85546181 \h 226
11.3.3 B*树介绍 PAGEREF _Toc85546182 \h 227
12. 图 PAGEREF _Toc85546183 \h 228
12.1 图基本介绍 PAGEREF _Toc85546184 \h 228
12.1.1 图的常用概念 PAGEREF _Toc85546185 \h 228
12.1.2 为什么要使用图 PAGEREF _Toc85546186 \h 231
12.2 图的表示方式 PAGEREF _Toc85546187 \h 231
12.2.1 邻接表 PAGEREF _Toc85546188 \h 232
12.2.2 邻接矩阵 PAGEREF _Toc85546189 \h 232
12.3 图的入门案例 PAGEREF _Toc85546190 \h 233
12.4 图的深度优先介绍 PAGEREF _Toc85546191 \h 233
12.4.1 图遍历介绍 PAGEREF _Toc85546192 \h 233
12.4.2 深度优先遍历基本思想 PAGEREF _Toc85546193 \h 233
12.4.3 深度优先遍历算法步骤 PAGEREF _Toc85546194 \h 234
12.4.4 深度优先算法代码实现 PAGEREF _Toc85546195 \h 234
12.5 图的广度优先遍历 PAGEREF _Toc85546196 \h 239
12.5.1 广度优先遍历基本思想 PAGEREF _Toc85546197 \h 239
12.5.2 广度优先遍历算法分析 PAGEREF _Toc85546198 \h 239
12.5.3 广度优先算法示意图 PAGEREF _Toc85546199 \h 240
12.6 图的广度优先遍历实现 PAGEREF _Toc85546200 \h 240
13. 常用10中算法 PAGEREF _Toc85546201 \h 241
13.1 二分查找算法 PAGEREF _Toc85546202 \h 241
13.1.1 二分查找算法介绍 PAGEREF _Toc85546203 \h 241
13.1.2 二分查找算法实现 PAGEREF _Toc85546204 \h 242
13.2 分治算法 PAGEREF _Toc85546205 \h 243
13.2.1 分治算法介绍 PAGEREF _Toc85546206 \h 243
13.2.2 分治算法步骤 PAGEREF _Toc85546207 \h 244
13.2.3 汉诺塔 PAGEREF _Toc85546208 \h 245
13.3 动态规划算法 PAGEREF _Toc85546209 \h 246
13.3.1 动态规划算法介绍 PAGEREF _Toc85546210 \h 246
13.3.2 动态规划算法实现 PAGEREF _Toc85546211 \h 246
13.4 KMP算法 PAGEREF _Toc85546212 \h 249
13.4.1 素朴匹配算法介绍 PAGEREF _Toc85546213 \h 249
13.4.2 素朴算法匹配规则 PAGEREF _Toc85546214 \h 249
13.4.3 KMP算法介绍 PAGEREF _Toc85546215 \h 250
13.4.4 KMP算法应用 PAGEREF _Toc85546216 \h 252
13.5 贪心算法 PAGEREF _Toc85546217 \h 255
13.5.1 应用场景 PAGEREF _Toc85546218 \h 255
13.5.2 贪心算法介绍 PAGEREF _Toc85546219 \h 256
13.5.3 贪心算法实践 PAGEREF _Toc85546220 \h 256
13.6 普里姆算法 PAGEREF _Toc85546221 \h 259
13.6.1 应用场景 PAGEREF _Toc85546222 \h 259
13.6.2 普里姆算法介绍 PAGEREF _Toc85546223 \h 260
13.6.3 普里姆算法实现 PAGEREF _Toc85546224 \h 261
13.7 克鲁斯卡尔算法 PAGEREF _Toc85546225 \h 265
13.7.1 应用场景 PAGEREF _Toc85546226 \h 265
13.7.2 克鲁斯卡尔算法介绍 PAGEREF _Toc85546227 \h 265
13.7.3 克鲁斯卡尔算法示意图 PAGEREF _Toc85546228 \h 265
13.7.4 克鲁斯卡尔算法实现 PAGEREF _Toc85546229 \h 269
13.8 迪杰斯特拉算法 PAGEREF _Toc85546230 \h 273
13.8.1 迪杰斯特拉算法介绍 PAGEREF _Toc85546231 \h 273
13.8.2 迪杰斯特拉算法实现 PAGEREF _Toc85546232 \h 278
13.9 佛洛伊德算法 PAGEREF _Toc85546233 \h 282
13.9.1 应用场景 PAGEREF _Toc85546234 \h 282
13.9.2 佛洛伊德算法介绍 PAGEREF _Toc85546235 \h 282
13.9.3 佛洛伊德算法图解 PAGEREF _Toc85546236 \h 282
13.9.4 佛洛伊德算法实现 PAGEREF _Toc85546237 \h 286
13.10 马踏棋盘算法 PAGEREF _Toc85546238 \h 289
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论