0%

大话数据结构PDF下载

《大话数据结构》

链接: https://pan.baidu.com/s/1S9lZPNA_qydJKHn21ydThA 提取码: 8i5k

《大话数据结构》为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595

目录

第1章 数据结构绪论

1.1 开场白

1.2 你数据结构怎么学的?

1.3 数据结构起源

1.4 基本概念和术语

1.4.1 数据

1.4.2 数据元素

1.4.3 数据项

1.4.4 数据对象

1.4.5 数据结构

1.5 逻辑结构与物理结构

1.5.1 逻辑结构

1.5.2 物理结构

1.6 抽象数据类型

1.6.1 数据类型

1.6.2 抽象数据类型

1.7 总结回顾

1.8 结尾语

第2章 算法

2.1 开场白

2.2 数据结构与算法关系

2.3 两种算法的比较

2.4 算法定义

2.5 算法的特性

2.5.1 输入输出

2.5.2 有穷性

2.5.3 确定性

2.5.4 可行性

2.6 算法设计的要求

2.6.1 正确性

2.6.2 可读性

2.6.3 健壮性

2.6.4 时间效率高和存储量低

2.7 算法效率的度量方法

2.7.1 事后统计方法

2.7.2 事前分析估算方法

2.8 函数的渐近增长

2.9 算法时间复杂度

2.9.1 算法时间复杂度定义

2.9.2 推导大O阶方法

2.9.3 常数阶

2.9.4 线性阶

2.9.5 对数阶

2.9.6 平方阶

2.10 常见的时间复杂度

2.11 最坏情况与平均情况

2.12 算法空间复杂度

2.13 总结回顾

2.14 结尾语

第3章 线性表

3.1 开场白

3.2 线性表的定义

3.3 线性表的抽象数据类型

3.4 线性表的顺序存储结构

3.4.1 顺序存储定义

3.4.2 顺序存储方式

3.4.3 数据长度与线性表长度区别

3.4.4 地址计算方法

3.5 顺序存储结构的插入与删除

3.5.1 获得元素操作

3.5.2 插入操作

3.5.3 删除操作

3.5.4 线性表顺序存储结构的优缺点

3.6 线性表的链式存储结构

3.6.1 顺序存储结构不足的解决办法

3.6.2 线性表链式存储结构定义

3.6.3 头指针与头结点的异同

3.6.4 线性表链式存储结构代码描述

3.7 单链表的读取

3.8 单链表的插入与删除

3.8.1 单链表的插入

3.8.2 单链表的删除

3.9 单链表的整表创建

3.10 单链表的整表删除

3.11 单链表结构与顺序存储结构优缺点

3.12 静态链表

3.12.1 静态链表的插入操作

3.12.2 静态链表的删除操作

3.12.3 静态链表优缺点

3.13 循环链表

3.14 双向链表

3.15 总结回顾

3.16 结尾语

第4章 栈与队列

4.1 开场白

4.2 栈的定义

4.2.1 栈的定义

4.2.2 进栈出栈变化形式

4.3 栈的抽象数据类型

4.4 栈的顺序存储结构及实现

4.4.1 栈的顺序存储结构

4.4.2 栈的顺序存储结构进栈操作

4.4.3 栈的顺序存储结构出栈操作

4.5 两栈共享空间

4.6 栈的链式存储结构及实现

4.6.1 栈的链式存储结构

4.6.2 栈的链式存储结构进栈操作

4.6.3 栈的链式存储结构出栈操作

4.7 栈的作用

4.8 栈的应用--递归

4.8.1 斐波那契数列实现

4.8.2 递归定义

4.9 栈的应用--四则运算表达式求值

4.9.1 后缀(逆波兰)表示法定义

4.9.2 后缀表达式计算结果

4.9.3 中缀表达式转后缀表达式

4.10 队列的定义

4.11 队列的抽象数据类型

4.12 循环队列

4.12.1 队列顺序存储的不足

4.12.2 循环队列定义

4.13 队列的链式存储结构及实现

4.13.1 队列链式存储结构入队操作

4.13.2 队列链式存储结构出队操作

4.14 总结回顾

4.15 结尾语

第5章 串

5.1开场白

05.2 串的定义

5.3 串的比较

5.4 串的抽象数据类型

5.5 串的存储结构

5.5.1 串的顺序存储结构

5.5.2 串的链式存储结构

5.6 朴素的模式匹配算法

5.7 KMP模式匹配算法

5.7.1 KMP模式匹配算法原理

5.7.2 next数组值推导

5.7.3 KMP模式匹配算法实现

5.7.4 KMP模式匹配算法改进

5.7.5 nextval数组值推导

5.8 总结回顾

5.9 结尾语

第6章 树

6.1 开场白

6.2 树的定义

6.2.1 结点分类

6.2.2 结点间关系

6.2.3 树的其他相关概念

6.3 树的抽象数据类型

6.4 树的存储结构

6.4.1 双亲表示法

6.4.2 孩子表示法

6.4.3 孩子兄弟表示法

6.5 二叉树的定义

6.5.1 二叉树特点

6.5.2 特殊二叉树

6.6 二叉树的性质

6.6.1 二叉树性质1

6.6.2 二叉树性质2

6.6.3 二叉树性质3

6.6.4 二叉树性质4

6.6.5 二叉树性质5

6.7 二叉树的存储结构

6.7.1 二叉树顺序存储结构

6.7.2 二叉链表

6.8 遍历二叉树

6.8.1 二叉树遍历原理

6.8.2 二叉树遍历方法

6.8.3 前序遍历算法

6.8.4 中序遍历算法

6.8.5 后序遍历算法

6.8.6 推导遍历结果

6.9 二叉树的建立

6.10 线索二叉树

6.10.1 线索二叉树原理

6.10.2 线索二叉树结构实现

6.11 树、森林与二叉树的转换

6.11.1 树转换为二叉树

6.11.2 森林转换为二叉树

6.11.3 二叉树转换为树

6.11.4 二叉树转换为森林

6.11.5 树与森林的遍历

6.12 赫夫曼树及其应用

6.12.1 赫夫曼树

6.12.2 赫夫曼树定义与原理

6.12.3 赫夫曼编码

6.13 总结回顾

6.14 结尾语

第7章 图

7.1 开场白

7.2 图的定义

7.2.1 各种图定义

7.2.2 图的顶点与边间关系

7.2.3 连通图相关术语

7.2.4 图的定义与术语总结

7.3 图的抽象数据类型

7.4 图的存储结构

7.4.1 邻接矩阵

7.4.2 邻接表

7.4.3 十字链表

7.4.4 邻接多重表

7.4.5 边集数组

7.5 图的遍历

7.5.1 深度优先遍历

7.5.2 广度优先遍历

7.6 最小生成树

7.6.1 普里姆(Prim)算法

7.6.2 克鲁斯卡尔(Kruskal)算法

7.7 最短路径

7.7.1 迪杰斯特拉(Dijkstra)算法

7.7.2 弗洛伊德(Floyd)算法

7.8 拓扑排序

7.8.1 拓扑排序介绍

7.8.2 拓扑排序算法

7.9 关键路径

7.9.1 关键路径算法原理

7.9.2 关键路径算法

7.10 总结回顾

7.11 结尾语

第8章 查找

8.1 开场白

8.2 查找概论

8.3 顺序表查找

8.3.1 顺序表查找算法

8.3.2 顺序表查找优化

8.4 有序表查找

8.4.1 折半查找

8.4.2 插值查找

8.4.3 斐波那契查找

8.5 线性索引查找

8.5.1 稠密索引

8.5.2 分块索引

8.5.3 倒排索引

8.6 二叉排序树

8.6.1 二叉排序树查找操作

8.6.2 二叉排序树插入操作

8.6.3 二叉排序树删除操作

8.6.4 二叉排序树总结

8.7 平衡二叉树(AVL树)

8.7.1 平衡二叉树实现原理

8.7.2 平衡二叉树实现算法

8.8 多路查找树(B树)

8.8.1 2-3树

8.8.2 2-3-4树

8.8.3 B树

8.8.4 B+树

8.9 散列表查找(哈希表)概述

8.9.1 散列表查找定义

8.9.2 散列表查找步骤

8.10 散列函数的构造方法

8.10.1 直接定址法

8.10.2 数字分析法

8.10.3 平方取中法

8.10.4 折叠法

8.10.5 除留余数法

8.10.6 随机数法

8.11 处理散列冲突的方法

8.11.1 开放定址法

8.11.2 再散列函数法

8.11.3 链地址法

8.11.4 公共溢出区法

8.12 散列表查找实现

8.12.1 散列表查找算法实现

8.12.2 散列表查找性能分析

8.13 总结回顾

8.14 结尾语

第9章 排序

9.1 开场白

9.2 排序的基本概念与分类

9.2.1 排序的稳定性

9.2.2 内排序与外排序

9.2.3 排序用到的结构与函数

9.3 冒泡排序

9.3.1 最简单排序实现

9.3.2 冒泡排序算法

9.3.3 冒泡排序优化

9.3.4 冒泡排序复杂度分析

9.4 简单选择排序

9.4.1 简单选择排序算法

9.4.2 简单选择排序复杂度分析

9.5 直接插入排序

9.5.1 直接插入排序算法

9.5.2 直接插入排序复杂度分析

9.6 希尔排序

9.6.1 希尔排序原理

9.6.2 希尔排序算法

9.6.3 希尔排序复杂度分析

9.7 堆 排 序

9.7.1 堆排序算法

9.7.2 堆排序复杂度分析

9.8 归并排序

9.8.1 归并排序算法

9.8.2 归并排序复杂度分析

9.8.3 非递归实现归并排序

9.9 快速排序

9.9.1 快速排序算法

9.9.2 快速排序复杂度分析

9.9.3 快速排序优化

1.优化选取枢轴

2.优化不必要的交换

3.优化小数组时的排序方案

4.优化递归操作

9.10 总结回顾

9.11 结尾语

附录 参考文献


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------