前言

数据结构是一门研究各种数据的组织方法、存储方法及在各种数据结构上执行操作的算法的学科。它是计算机专业及其相关专业的一门专业核心基础课,起到承前启后的作用。通过数据结构课程的学习,使学生能使用数据结构的基本分析方法来提高编写程序的能力和应用计算机解决实际问题的能力。

数据结构一直是一门“教师难讲、学生难学”的课程,对于高职高专学生的教学,我们以“应用为主、够用就好”为原则,从实用出发,将数据结构中的知识进行取舍,精心编写本书。

为了让学生对计算机项目有个整体认识,本书以“数据结构实验系统”为主线来编写。每一章的主要算法构成一个相对独立的子系统,子系统在每章实验中给出,它既是授课重点,也是上机实验的主要内容。在最后一章中,将本书所有重要算法合并为一个大的实验系统。该系统设计有选择式菜单,可以通过选择菜单的各项来执行对应的算法,便于学生理解整个数据结构的知识,也可以由学生将书中未加入到该系统中的算法自行添到该系统中。

考虑到此课程的先导课是“C语言程序设计”,书中算法均采用可在计算机上运行的C语言程序来描述。这样,降低了算法设计的难度,使学生能更直观形象地理解各算法。实现代码均在VC6.0中编译通过,并通过截屏给出了所有程序的运行结果。(截屏的好处是保证程序的正确性和结果的直观性。)

本教材共分10章。第1章概论,介绍了数据结构的基本概念和算法描述,并介绍了时间复杂度和空间复杂度;第2章~第5章,介绍了线性表、栈、队列和串等线性结构的逻辑特征、存储结构和常用算法的实现与基本应用;第6章~第7章,介绍了树和图两种非线性结构的逻辑特征、存储方法及相关算法的实现和基本应用;第8章查找,介绍了顺序查找、折半查找、分块查找和二叉排序树的查找方法及其实现;第9章排序,介绍了各种常用的排序方法及其实现;第10章数据结构实验系统开发及说明,主要介绍了如何将全书各章中实验程序合并成为一个完整的“数据结构实验系统”,并逐步进行调试直至最后运行。通过第10章的学习,学生可以建立起系统设计的初步概念。附录中提供了一套模拟试题和全书习题答案。

本书由刘畅主编,书中第6章~第9章由刘畅编写。汤晓伟、王茹、王象刚为副主编,书中第1、第2章由汤晓伟编写,第3、第4章由王茹编写,第5、第10章由王象刚编写。叶宾、胡艳梅、张旭辉、郭畅老师编写了全书大量的插图、课后习题等内容。全书由刘畅统稿及修改,董凤服教授对本书的总体结构和写作方法提出很多宝贵意见并审阅了全书。

本书主要适用于高等职业院校的本、专科计算机专业学生,也适合于自学计算机相关知识的人员参考使用。本书讲授学时数为60~70学时,如果安排实训则将第10章的“数据结构实验系统”在20学时内完成。教师可根据学时数和学生的实际情况选讲本书的例子。

为配合本教学,本书还配套有相应电子课件,课件和书中所有算法及“数据结构实验系统”源代码可从电子工业出版社的华信教育资源网(http://www.hxedu.com.cn)下载,或通过邮件向刘畅老师索取,刘畅老师邮箱为:lcluwzc@163.com。

由于作者水平有限,书中疏漏或不足之处在所难免,恳请广大专家和读者给出宝贵意见。

编者