本书是王道考研系列中关于计算机考研专业基础课程“数据结构”的复习参考书,是目前市面上的*威性参考图书,已经过多年的检验,深受读者欢迎与喜爱。
本书严格按照*新计算机统考大纲的数据结构部分,对大纲所涉及的知识点进行集中梳理,力求内容精炼、重点突出、深入浅出。本书精选名校历年考研真题,并给出详细的解题思路,力求达到讲练结合、灵活掌握、举一反三的功效。通过本书"书本+在线”的学习方式和网上答疑方式,读者在使用本书时遇到的任何疑难点,都可以在王道论坛发帖与道友互动。 *近7年的统考试题命题方式越来越灵活、难度越来越大,而王道考研系列辅导书已几乎是计算机高分选手的标配,希望能给读者的考研复习带来*有力的帮助!
目 录
第1章 绪论 1
1.1 数据结构的基本概念 1
1.1.1 基本概念和术语 1
1.1.2 数据结构的三要素 2
1.1.3 本节试题精选 3
1.1.4 答案与解析 4
1.2 算法和算法评价 5
1.2.1 算法的基本概念 5
1.2.2 算法效率的度量 5
1.2.3 本节试题精选 7
1.2.4 答案与解析 9
归纳总结 10
思维拓展 11
第2章 线性表 12
2.1 线性表的定义和基本操作 12
2.1.1 线性表的定义 12
2.1.2 线性表的基本操作 13
2.1.3 本节试题精选 13
2.1.4 答案与解析 14
2.2 线性表的顺序表示 14
2.2.1 顺序表的定义 14
2.2.2 顺序表上基本操作的实现 15
2.2.3 本节试题精选 17
2.2.4 答案与解析 19
2.3 线性表的链式表示 26
2.3.1 单链表的定义 26
2.3.2 单链表上基本操作的实现 27
2.3.3 双链表 31
2.3.4 循环链表 32
2.3.5 静态链表 33
2.3.6 顺序表和链表的比较 34
2.3.7 本节试题精选 35
2.3.8 答案与解析 39
归纳总结 56
思维拓展 57
第3章 栈和队列 58
3.1 栈 58
3.1.1 栈的基本概念 58
3.1.2 栈的顺序存储结构 59
3.1.3 栈的链式存储结构 61
3.1.4 本节试题精选 61
3.1.5 答案与解析 64
3.2 队列 70
3.2.1 队列的基本概念 70
3.2.2 队列的顺序存储结构 71
3.2.3 队列的链式存储结构 73
3.2.4 双端队列 74
3.2.5 本节试题精选 76
3.2.6 答案与解析 78
3.3 栈和队列的应用 82
3.3.1 栈在括号匹配中的应用 82
3.3.2 栈在表达式求值中的应用 83
3.3.3 栈在递归中的应用 83
3.3.4 队列在层次遍历中的应用 84
3.3.5 队列在计算机系统中的应用 85
3.3.6 本节试题精选 85
3.3.7 答案与解析 87
3.4 特殊矩阵的压缩存储 93
3.4.1 数组的定义 93
3.4.2 数组的存储结构 93
3.4.3 矩阵的压缩存储 94
3.4.4 稀疏矩阵 96
3.4.5 本节试题精选 96
3.4.6 答案与解析 97
归纳总结 98
思维拓展 98
第4章 树与二叉树 99
4.1 树的基本概念 99
4.1.1 树的定义 99
4.1.2 基本术语 100
4.1.3 树的性质 101
4.1.4 本节试题精选 101
4.1.5 答案与解析 102
4.2 二叉树的概念 104
4.2.1 二叉树的定义及其主要特性 104
4.2.2 二叉树的存储结构 105
4.2.3 本节试题精选 107
4.2.4 答案与解析 109
4.3 二叉树的遍历和线索二叉树 113
4.3.1 二叉树的遍历 113
4.3.2 线索二叉树 116
4.3.3 本节试题精选 118
4.3.4 答案与解析 122
4.4 树、森林 139
4.4.1 树的存储结构 139
4.4.2 树、森林与二叉树的转换 141
4.4.3 树和森林的遍历 142
4.4.4 树的应用―并查集 143
4.4.5 本节试题精选 144
4.4.6 答案与解析 146
4.5 树与二叉树的应用 150
4.5.1 二叉排序树 150
4.5.2 平衡二叉树 154
4.5.3 哈夫曼(Huffman)树和哈夫曼编码 156
4.5.4 本节试题精选 158
4.5.5 答案与解析 162
归纳总结 172
思维拓展 173
第5章 图 174
5.1 图的基本概念 175
5.1.1 图的定义 175
5.1.2 本节试题精选 178
5.1.3 答案与解析 179
5.2 图的存储及基本操作 181
5.2.1 邻接矩阵法 182
5.2.2 邻接表法 183
5.2.3 十字链表 184
5.2.4 邻接多重表 185
5.2.5 图的基本操作 186
5.2.6 本节试题精选 187
5.2.7 答案与解析 189
5.3 图的遍历 192
5.3.1 广度优先搜索(Breadth-First-Search,BFS) 192
5.3.2 深度优先搜索(Depth-First-Search,DFS) 195
5.3.3 图的遍历与图的连通性 196
5.3.4 本节试题精选 196
5.3.5 答案与解析 198
5.4 图的应用 203
5.4.1 最小生成树(Minimum-Spanning-Tree,MST) 204
5.4.2 最短路径 206
5.4.3 拓扑排序 209
5.4.4 关键路径 210
5.4.5 本节试题精选 212
5.4.6 答案与解析 218
归纳总结 228
思维拓展 229
第6章 查找 230
6.1 查找的基本概念 230
6.2 顺序查找和折半查找 231
6.2.1 顺序查找 231
6.2.2 折半查找 233
6.2.3 分块查找 235
6.2.4 本节试题精选 235
6.2.5 答案与解析 238
6.3 B树和B+树 243
6.3.1 B树及其基本操作 243
6.3.2 B+树基本概念 246
6.3.3 本节试题精选 247
6.3.4 答案与解析 249
6.4 散列(Hash)表 253
6.4.1 散列表的基本概念 253
6.4.2 散列函数的构造方法 253
6.4.3 处理冲突的方法 254
6.4.4 散列查找及性能分析 255
6.4.5 本节试题精选 256
6.4.6 答案与解析 258
6.5 字符串模式匹配 263
6.5.1 简单的模式匹配算法 263
6.5.2 改进的模式匹配算法―KMP算法 264
6.5.3 本节试题精选 269
6.5.4 答案与解析 270
归纳总结 276
思维拓展 277
第7章 排序 278
7.1 排序的基本概念 279
7.1.1 排序的定义 279
7.1.2 本节试题精选 279
7.1.3 答案与解析 280
7.2 插入排序 280
7.2.1 直接插入排序 280
7.2.2 折半插入排序 281
7.2.3 希尔排序 282
7.2.4 本节试题精选 283
7.2.5 答案与解析 284
7.3 交换排序 286
7.3.1 冒泡排序 287
7.3.2 快速排序 287
7.3.3 本节试题精选 289
7.3.4 答案与解析 291
7.4 选择排序 295
7.4.1 简单选择排序 296
7.4.2 堆排序 296
7.4.3 本节试题精选 299
7.4.4 答案与解析 300
7.5 归并排序和基数排序 304
7.5.1 归并排序 304
7.5.2 基数排序 305
7.5.3 本节试题精选 306
7.5.4 答案与解析 307
7.6 各种内部排序算法的比较及应用 309
7.6.1 内部排序算法的比较 309
7.6.2 内部排序算法的应用 310
7.6.3 本节试题精选 311
7.6.4 答案与解析 312
7.7 外部排序 314
7.7.1 外部排序的基本概念 315
7.7.2 外部排序的方法 315
7.7.3 多路平衡归并与败者树 316
7.7.4 置换-选择排序(生成初始归并段) 317
7.7.5 最佳归并树 318
7.7.6 本节试题精选 319
7.7.7 答案与解析 320
归纳总结 323
思维拓展 324
参考文献 325
前 言
2011年,由王道论坛(www.cskaoyan.com)组织名校状元级选手,编写了4本单科辅导书。单科书是基于王道之前作品的二代作品,不论是编排方式,还是内容质量都较前一版本的王道书有了较大的提升。这套书也参考了同类优秀的教材和辅导书,更是结合了高分选手们自己的复习经验。无论是对考点的讲解,还是对习题的选择和解析,都结合了他们对专业课复习的独特见解。2017年,我们继续推出“王道考研系列”单科书,一共4本:
? 《2018年数据结构考研复习指导》
? 《2018年计算机组成原理考研复习指导》
? 《2018年操作系统考研复习指导》
? 《2018年计算机网络考研复习指导》
每一版,我们不仅会修正之前发现的全部错误,还会对考点讲解做出尽可能的优化,也重新审视论坛的交流帖,针对大家提出的疑问和建议对本书做出针对性的优化;此外还重新筛选了部分习题,尤其是对习题的解析做出了更好的改进。
统考8年,难度越来越大、考题越来越灵活,考取高分的难度很大,不少考生遇到这样的试卷有束手无策的感觉,这其实是基础不扎实的表现。当然,深入掌握专业课内容没有捷径,考生也不应怀有任何侥幸心理,扎扎实实打好基础、踏踏实实做题巩固,最后灵活致用才是高分的保障。我们只希望这套书能够指导大家复习考研,但学习还是得靠自己,高分不是建立在任何空中楼阁之上的。对于一个想继续在计算机专业领域深造的考生来说,认真学习和扎实掌握这4门计算机专业中最基础的专业课,是最基本的前提。
“王道考研系列”是计算机考生口碑相传的辅导书,自出版以来在同类书中的销量始终遥遥领先。有这么多的成功学长,我相信只要考生合理地利用好本书、并采用合理的复习方法,一定会收获属于自己的那份回报。
“王道考研系列”的特色是“书本+在线”,你在复习中遇到的任何困难,都可以在王道论坛上发帖,热心道友以及辅导员都会积极参与并与你交流。你的参与就是对我们最大的鼓舞,任何一个建议,我们都会认真考虑,也会针对大家的意见对本书进行修订。
“不打广告、不发证书、不包就业,专注于培养有梦想、有能力的高级码农”王道程序员训练营是王道团队举办的线下程序员魔鬼式集训。打下扎实的编程和算法基本功,培养程序员式的学习能力和学习方法,期待有梦想有追求的你加入!
予人玫瑰,手有余香,王道论坛伴你一路同行!
风华漫舞
致 读 者
——王道单科使用方法的道友建议
我是二战考生,2012年第一次考研成绩333分(专业代码408,成绩81分),痛定思痛后决心再战。潜心复习了半年后终于以392分(专业代码408,成绩124分)考入上海交通大学计算机系,这半年里我的专业课成绩提高了43分,成了提分主力。从不达线到比较满意的成绩;从闷头乱撞到有了自己明确的复习思路,我想这也是为什么风华哥从诸多高分选手中选我给大家介绍经验的一个原因吧。
整个专业课的复习是围绕王道材料展开的,从一遍、两遍、三遍看单科书的积累提升,到做8套模拟题时的强化巩固,再到看思路分析时的醍醐灌顶。王道书能两次押中原题固然有运气成分,但这也从侧面说明他们的编写思路和选题方向与真题很接近。
下面说说我的具体复习过程:
每天划给专业课的时间是3~4小时。第一遍细看课本,看完一章做一章单科书(红笔标注错题),这一遍共持续2个月。第二遍主攻单科书(红笔标注重难点),辅看课本。第二遍看单科书和课本的速度快了很多,但感觉收获更多,常有温故知新的感觉,理解更深刻(风华注,建议这里再速看第三遍,特别针对错题和重难点。模拟题完后再跳看第四遍)。
以上是打基础阶段,注意单科书和课本我仔细精读了两遍,弄懂每个知识点和习题。大概11月上旬开始做模拟题和思路分析,期间遇到不熟悉的地方不断回头查阅单科书和课本。8套模拟题的考点覆盖得很全面,所以大家做题时如果忘记了某个知识点,千万不要慌张,赶紧回去看这个知识盲点,最后的模拟就是查漏补缺。模拟题一定要严格按考试时间去做(14:00~17:00),注意应试技巧,做完试题后再回头研究错题。算法题的最优解法不太好想,如果实在没思路,建议直接“暴力”解决,结果正确也能有10分,总比苦拼出15分来而将后面比较好拿分的题耽误了好(这是我第一年的切身教训!)。最后剩了几天看标注的错题,第三遍跳看单科书,考前一夜浏览完网络,踏实地睡着了……
考完专业课,走出考场终于长舒一口气,考试情况也胸中有数。回想这半年的复习,耐住了寂寞和诱惑,雨雪风霜从未间断跑去自习,考研这人生一站终归没有辜负我的用心良苦。佛教徒说世间万物生来平等,都要落入春华秋实的代谢中去,辩证唯物主义认为事物作为过程存在,凡是存在的终归要结束,你不去为活得多姿多彩拼搏,真到了和青春说再见时你是否会可惜虚枉了青春?风华哥说过我们都是有梦的“屌丝”,我们正在逆袭,你呢?
感谢风华大哥的信任,给我这个机会分享专业课复习经验给大家,作为一个铁杆道友在王道受益匪浅,也借此机会回报王道论坛。祝大家金榜题名!
ccg1990@SJTU
王道程序员训练营
经常有人问我们:“为什么不做考研培训?这个市场很大”?
这里,算作一个简短的回答吧。王道尊重的不是考研这个行当,而是考研学生的精神,他们的梦想,仅此而已。考研可能是部分CS学生实现梦想的阶段,但考研学习的内容,对CSer的职业生涯毕竟没有太多的帮助和意义。对于计算机专业的学生,编程基本功和学习能力才是受用终生的资本,决定了未来在技术道路上能走多远。
而王道团队也只会专注于计算机这个领域,往其纵深发展,从名校考研、到编程集训、再到求职推荐。从2008年初创办至今,王道创始团队,经历了从本科到考研成功,从硕士到社会历练,积累了不少经验和社会资源,但也走过不少弯路。
计算机是一个靠能力吃饭的专业。和很多现在的你们一样,当年的我们也经历过本科时的迷茫,而无非是自觉能力太弱,以致底气不足。学历只是敲门砖,同样是名校硕士,有人走上正确的方向,如鱼得水,成为Offer帝;有人却始终难入“编程与算法之门”,始终与好Offer无缘,再一次体会就业之痛,最后只能“将就”签约。即便是名校硕士,Offer也有8万元人民币、15万元人民币、20万元人民币、25万元人民币……三六九等。考研高分≠Offer高薪,我们更欣赏技术上的牛人。
考研结束后的日子,或许是一段难得的提升编程能力的连续完整时光,趁着还有时间,也该去弥补本科期间应掌握的能力,也是追赶与那些大牛们的差距的时候了。
你将从王道集训营获得
编程能力的迅速提升,结合项目实战,逐步打下坚实的编程基础,培养积极、主动的学习能力。动手编程为驱动的教学模式,解决你在编程、算法思维上的不足。也是为未来的深入学习提供方向指导,掌握编程的学习方法,引导进入“编程与算法之门”。
道友们在集训营里从菜鸟逐步成长,训练营中目前已有不少研究生道友陆续拿到百度、腾讯、阿里、搜狗等一线互联网公司的Offer。这就是竞争力!
正如八期道友孟亮所言:“来了你就发现,这里无关程序员以外的任何东西,这是一个过程,一个对自己认真,对自己负责的过程”。
……
王道集训营的优势
这里都是王道道友,他们信任王道,乐于分享与交流,纯粹。
因为都是忠实的王道道友,都曾经历过考研……集训营的住宿、生活都在一起,其乐融融,很快大家也将成为互帮互助的好朋友!相互学习对方的优点。
本科+硕士的生源。考研绝非人生唯一的出路,给自己换一条路走,去职场上好好发展或许会更好。考上研究生也并不意味着高枕无忧,人生的道路还很漫长。
王道团队皆具有扎实的编程基本功,他们用自己的态度、思维去影响集训营的道友,尽可能引导他们走上正确的发展方向……是对道友信任的回报,也是一种责任!
王道集训营只是一个平台,网罗王道论坛上有梦想、有态度的CS屌丝。并为他们的梦想提供土壤和圈子。始终相信那句“物竞天择 适者生存”,这里的生存并不是简简单单的活下来,而是活得有价值、活得有态度!
王道集训营的参与条件
1.面向就业
面临就业,但编程能力偏弱的计算机相关专业学生。
大学酱油模式渡过,投简历如石沉大海,好不容易有次面试机会,又由于基础薄弱、编程太少,以至于面试时有口无言,面试结果可想而知。开始偿债吧,再不抓住当下,未来或将持续迷茫,逝去了的青春是无法复返的,这个世界上后悔药是确定没有的。
眼光和视野放长远一点吧,在这个充分竞争的技术领域,当前的能力决定了你能找一份怎样的工作,踏实的态度和学习的能力决定了你未来能走多远。
王道集训营(C/C++或安卓方向)的费用通常只有市面培训机构的一半左右,且费用四年未涨(业界良心),极大降低了参加道友的学习成本。
2.面向硕士
提升能力,刚考上计算机相关专业的准研究生或在读研究生。
名校研究生已没有什么可以值得骄傲的资本,我们身边所看到的都是名校硕士。同为名校,为什么有人能轻松拿到百度、腾讯、阿里、微软等Offer,年薪15~30万元人民币,发展前景甚好;有人却只能拿6~10万元人民币年薪的Offer,在房价/物价高飞的年代,这点收入也只能月光吧。家中父母可能因有名校硕士的孩子而骄傲,可不知孩子其实在外面过得很辛苦。
来王道集训营的一些要求
● 王道是开放式网络(同类机构没有谁会开放网络的),有利有弊,我们是希望培养会积极主动学习的人,着重培养他们独立解决问题的能力,需擅于利用网络。
● 保持内在的激情和踏实态度,不需要“打鸡血”。第一次打鸡血能坚持1个月、第二次能坚持半个月、第三次只能坚持一周,但试想读研或工作后谁会给你“打鸡血”。
● 不要总是期待老师灌输得更多,应逐步摆脱对老师的依赖,培养积极主动的钻研能力、独立解决问题的能力,到后期更应主动去钻研、主动去解决问题。
● 随遇而安,不轻浮,保持虚心和踏实的态度,多独立思考,也要多交流。
● 坚持做笔记,多向身边优秀的道友学习,少说多做,沉浸在代码的世界中。
最后,我们并不太看重眼前的基础。始终相信:眼前哪怕基础弱一些,但只要踏踏实实
这本书的排版和装帧简直是考研党的大救星!拿到手里就感觉沉甸甸的,一看目录就知道下足了功夫。封面设计低调又不失专业感,那种深沉的蓝色调让人一看就觉得是正经做学问的书。内页纸张质量也相当不错,摸起来很舒服,长时间阅读眼睛也不会有明显的疲劳感。更值得称赞的是它的章节划分和知识点梳理,逻辑性强到令人发指。作者显然是深谙历年真题的出题套路,每一个知识点的讲解都精准地把握了“考研党需要知道什么”的核心,不多不少,恰到好处。特别是那些核心算法的伪代码呈现,清晰得就像PPT动画演示一样,哪怕是初次接触图论或者动态规划的同学,也能迅速抓住脉络。我记得上次啃另一本参考书时,常常被一些晦涩的专业术语绕晕,但这本书在这方面做得非常人性化,它会用更贴近生活或更直观的例子来解释复杂的概念,让那些原本高高在上的理论瞬间变得触手可及。可以说,这本书在物理层面上就已经为我们提供了一个极佳的学习环境。
评分坦白说,选择考研资料是个技术活,太多资料空泛无物,白白浪费时间。但这份《复习指导》,给我的感觉是“内容扎实,绝无水分”。它没有冗余的、脱离考试范围的理论深挖,所有的内容选择都紧紧围绕着历年高频考点和命题趋势展开。我甚至将这本书视为我整个复习计划的“骨干框架”,所有其他的零散笔记和习题集,都是围绕着这本书的结构来填充和巩固的。尤其是它对“算法设计与分析”这一块的侧重点,非常符合当前计算机科学的考核要求——不仅要求会写代码,更要求能分析性能和进行优化。书中的各种复杂度分析实例,都经过了精心的挑选和打磨,非常具有代表性。如果说考研是一场马拉松,那么这本书就是提供优质补给和科学配速的向导,它让你知道每一步该用多大的力气,该关注哪个方向,极大地提升了我的备考效率和针对性。
评分我简直要为作者对真题的洞察力鼓掌喝彩!这份复习指导的深度和广度,远超我预想中一本“考研辅导书”的范畴。它不像有些资料只是简单地罗列知识点和例题,而是真正地在“教你如何思考”和“如何应对变化”。翻开历年真题解析部分,我惊呆了——它不仅给出了标准答案,更细致地分析了出题人可能的意图、不同得分点之间的细微差别,甚至预测了未来几年可能考察的变种题型。这种前瞻性的分析能力,是任何死记硬背的复习方法都无法比拟的。我感觉自己不再是孤军奋战去对抗一张张试卷,而是有了一个身经百战的“军师”在旁边指点迷津。举个例子,它对树和图的遍历算法的比较分析,不是简单地对比DFS和BFS的时间复杂度,而是深入到了递归栈的深度限制、应用场景的适用性等多个维度,让我对这部分内容有了脱胎换骨的理解。对于那些基础薄弱,希望在短期内实现高效突破的考生来说,这本书简直就是一剂强心针,它帮你把精力集中在最有可能得分的地方。
评分从学习体验的角度来看,这本书的自洽性和连贯性做得极其出色,仿佛是一条精心编织的知识脉络,而不是零散知识点的堆砌。很多教材在讲解完一个基础概念后,需要读者自行跳转到后面的章节去寻找相关的应用实例,阅读体验常常被打断。然而,这本书在每个关键模块的末尾,都会巧妙地植入一个“综合应用案例”或“易错点辨析”,这些内容不是简单地重复讲解,而是将前面学到的分散知识点融会贯通地串联起来,形成一个完整的知识闭环。这种设计极大地减轻了我们反复翻书查找的负担,使得复习过程更加流畅和沉浸。我个人非常喜欢它对“抽象数据类型(ADT)”和“具体实现”之间关系的阐述,它清晰地界定了两者在不同层次上的职责划分,这对于理解面向对象思想在数据结构中的应用至关重要。这种层层递进、环环相扣的编排方式,让原本枯燥的理论学习过程,变成了一种逐步构建知识大厦的探索之旅。
评分这本书的语言风格,我必须特别提一下,它在保持专业严谨的同时,又带着一股难得的亲和力。作者的文字功底很深,不会用那些故作高深的辞藻来粉饰太平,而是用最朴实、最精确的语言来阐释复杂的概念。那种感觉就像是一位经验极其丰富的大学教授,坐在你面前,耐心细致地为你剖析难题,而不是一个冷冰冰的官方说明书。特别是那些被公认为难点的高级主题,比如B树的平衡机制、红黑树的旋转操作,作者都配上了非常形象的比喻或示意图,让人在理解“为什么”的同时,也深刻理解了“如何做”。我发现自己不再害怕那些需要大量空间和时间复杂度分析的题目了,因为书中的分析过程详略得当,既保证了推导的严密性,又照顾到了读者的理解速度。这种平衡把握得非常好,让人感觉学习的压力被巧妙地分散了,信心也随之建立起来了。
评分嗯。。。。。。。。。。
评分论坛推荐书目,非常不错,支持京东,支持风华哥
评分好啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊阿aa
评分花无重开日,人无再少年
评分可以可以可以。
评分大家都知道,又没做多少,评价什么……
评分纸张不错,质量不错。。。。。。。。。。。。。。,,,,
评分计算机考研的王道选择,加油
评分昨天上午买的,下午就到了,物流一如既往的给力,书质量也不错,就是封面不知怎么回事有点脏。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有