基本信息

内容简介
目录
前言
教学建议
第一部分概论部分
第1章数据结构3
11什么是数据3
12什么是数据结构3
121数据的逻辑结构3
122数据的存储结构6
123数据的运算8
13什么是数据类型9
14什么是抽象数据类型9
15知识点小结10
习题10
第2章算法11
21什么是算法11
22算法的描述11
23算法的性能分析12
231时间复杂度13
232渐近符号13
前言
基于上述考虑,本书充分运用实例法深入浅出、形象地讲解各种数据结构,针对一个讲解实例给出了不同的求解方案,让读者能够了解如何选择合适数据结构求解问题,并切身体会采用同一种数据结构的不同存储结构实现同一个算法在执行效率和编程难度上的差异,从而激发学生的学习兴趣和热情。而且,以问题驱动的方式引导学生进行逐步深入思考,有利于帮助学生建立计算思维,使得他们不仅知其然,而且知其所以然。
本书分为四个部分共12章。第一部分包括第1章和第2章,主要介绍数据结构的概念、算法的概念、数据结构和算法之间的密切关联以及简单的算法分析。第二部分包括第3~7章,这一部分以“线性表”为主线分别详细讨论了六种常见的线性结构。第三部分介绍了非线性结构中树(第8章)、二叉树(第9章)和图(第10章)的基本概念、存储结构、一些基本操作的实现以及它们的经典应用。第四部分介绍了查找(第11章)和排序(第12章)的各种常用算法,同时展现了各种数据结构的完美应用。
本书在内容组织上力求丰富充实、科学合理,符合学生的认知规律,力求将每种数据结构分析透彻。在语言描述上力求深入浅出、简单明了。为了帮助学生理解和掌握各种数据结构,书中列举了大量的思考题、例题和习题。本书主要采用面向过程的C语言作为数据结构和算法的描述手段,在保持C语言优点的同时尽量使算法描述简单清晰。
与本书配套的资料有书中程序的源代码、习题参考答案以及电子课件等,教师可登录华章网站下载。
本书第1~10章主要由湖北工业大学沈华博士编写,第11~12章主要由湖南工业大学文志诚博士编写,湖北工业大学杨晓艳博士对书中代码进行了校验,全书由湖北工业大学张明武教授修改定稿。
在本书的编写中,负责本书编辑出版工作的机械工业出版社华章公司策划编辑、教材部副主任朱劼老师和佘洁编辑付出了大量辛勤的劳动。武汉大学何炎祥教授在百忙之中认真审阅了全书,提出了许多宝贵和中肯的意见。在此,谨向每一位关心和支持本书编写工作的各位朋友、老师表示衷心的谢意!
由于作者的知识和写作水平有限,书中难免有错误和不足之处,恳请各位专家、读者批评指正。作者E-mail:nancy78733@126.com。
沈华
2015年4月于武汉南湖
序言
数据结构中的数据和结构是两个紧密联系而又相互关联的概念,数据是数据结构的主要组成部分,它不涉及数据之间的关系;结构才涉及而且只涉及数据之间的关系。从中文构词上来看,数据结构更强调的是结构,即数据之间的关联方式。我们需要将适用于计算机的问题求解策略用计算机能理解的形式输入计算机中,告诉计算机如何一步一步地处理数据并最终得到问题的解,这就是算法。因此,从抽象层面上讲,数据结构是为算法服务的。不同的应用需求需要不同的算法,不同的算法需要不同的数据结构来支持。从实现层面上讲,数据结构是为算法实现服务的。
本书作者具有多年的教学和科研经验,对各种数据结构及应用算法有深入的了解。本书对什么是数据结构、什么是算法、算法和数据结构之间的关系进行了生动的阐述,并对各种线性数据结构、非线性数据结构、查找算法和排序算法等做了详尽的描述和分析。本书基本概念清晰,重点和难点问题讨论深入,而且循序渐进,为读者深入理解和应用数据结构给出了启示。本书既注重对数据结构经典内容的论述,又强调数据结构的应用,对相关内容进行了启发式讨论,是一本值得阅读和选用的教科书。
何炎祥
武汉大学计算机学院
2010年8月18日于武汉珞珈山