前言
算法之美在于简洁,它使人们的工作更加高效,使人们有更多时间享受惬意生活。
数据结构书籍众多,琳琅满目,大多理论高深有余而趣味引导不足,令众多读者有心学习而难以深入。如何把高深的算法理论用简单的例子、绘图、游戏等方式表述清楚,把复杂的问题简单化、趣味化,从而降低学习数据结构的门槛,一直是编者想做的一件事。
首先,编者认为章节组织架构逻辑要十分清晰,标题要凝练,且内容要全面,更不能缺少用于练习和实践的大量习题和上机实验题,除此之外,还要有拓展提高的练习题,以及与实际结合的题目,深入浅出,满足读者竞赛和应用之需要。
本书主要内容、学习目标以及学时(64学时=理论48学时+实验16学时)分配建议如下表所示。
为了使读者更好地学习本书知识,编者以化繁为简、学以致用为目标,通过游戏和结合实际例子的方式由浅入深地讲解数据结构中晦涩的概念和算法。本书特色如下。
(1)概念——简洁描述,多举例子、多画图,必要时配上讲解视频。
(2)算法——从描述、思路分析、举例、小游戏、代码/伪代码、性能分析、课堂练习到课后拓展、心得小结,逻辑清晰,一气呵成。本书有些例子根据教学情景设计,可直接用于课堂教学。
(3)思考与练习——在概念或算法讲解之后,可留给学生作为课堂练习,以加深理解。
(4)应用——学以致用是本书的目标之一,为此,每章基本上都配备了(经典)应用例子。
(5)实验——每章配备有上机实验,读者可根据自身情况灵活分配和选择。
(6)习题——每章配备有大量的练习题,方便老师布置作业和读者课后练习。
(7)总结——每章设置学习总结,便于读者梳理本章知识和区分容易混淆的概念。
(8)附录——附录A介绍Java语言中的数据结构,以助读者高效编程;附录B是基础算法练习题,帮助读者强化训练;附录C是编程题,可供读者用于竞赛前的训练准备。
建议读者先了解本书目录框架,以对整本书内容有一宏观认识。读者在理解算法时可以先自己思考,再通过相关游戏、视频等素材去加深理解,自己的思路很重要。读者阅读代码若有困难,可先打好Java语言基础,再依照思路分析和绘图方式去阅读。在本书内容基本掌握之后,读者应加强习题练习,以提高自己的水平。与此同时,读者也可以根据自己的情况有针对性地选择章节学习。
最后,感谢家人在我写作期间无微不至的照顾以及对我拍摄教学视频的帮助,感谢人民邮电出版社所有为本书付出的人,感谢所有支持我编写和出版本书的人,没有你们的支持,本书难以顺利出版。
由于编者水平有限,书中难免存在不足之处,希望广大读者批评指正。
编者
2023年夏于成都