本书组织结构
本书的编写遵循“问题先导,应用贯穿;描述简洁,代码其中”的原则。全书共包含11章,以火车票管理系统大型应用为主线,介绍涉及的基本概念、实现及应用。除了第1章和第11章,每章结构的安排基本按照问题引入、定义与实现、简单应用、大型应用实现、小结与习题的框架。
第1章由火车票管理系统这个大型应用引入数据结构的基本概念(逻辑结构、存储结构、操作定义和操作实现等)、算法分析(时间复杂度、空间复杂度等)及优化,并介绍火车票管理系统的需求分析、系统构成及涉及的数据管理类。
第2章介绍线性表的基本概念(定义、实现与简单应用),并介绍大型应用中列车运行计划管理类的实现。
第3章介绍队列与栈的基本概念(定义、实现与简单应用),并介绍大型应用中排队交易类的实现。
第4章介绍树的定义、二叉树与优先级队列的基本概念(定义、实现与简单应用)、哈夫曼树与哈夫曼编码,并介绍大型应用中带优先级的排队交易类的实现。
第5章介绍集合的定义、静态查找表及并查集,并介绍大型应用中列车运行图类及旅途中的站点可达性查询的实现。
第6章介绍二叉查找树、AVL树、红黑树、哈希表的基本概念(定义、实现),并介绍大型应用中旅客管理类的实现。
第7章介绍排序的定义、插入排序、选择排序、交换排序、归并排序和基数排序。
第8章介绍外部查找表的定义、B树、B+树、外排序,并介绍大型应用中余票管理类与行程管理类的实现。
第9章介绍图的定义、实现、遍历(深度优先搜索、广度优先搜索)及图的遍历的简单应用(连通性、欧拉回路、拓扑排序及关键路径),并介绍大型应用中列车运行图类的线路途经站点查询的实现。
第10章介绍最小生成树(定义、克鲁斯卡尔算法及普里姆算法)、单源最短路径(非加权图、加权图、带有负权值图及无环图的最短路径)、所有顶点对的最短路径,并介绍大型应用中列车运行图类的最优路线查询的实现。
第11章介绍枚举法、贪婪算法、分治法、回溯法、动态规划、随机算法,并通过一个外卖配送任务实例进行算法综合分析。
本书的11章内容皆为数据结构与算法的主干知识,所有希望系统掌握数据结构基本知识及基本算法的读者都应该学习这些内容。