实用数据结构基础(第四版)
上QQ阅读APP看书,第一时间看更新

第三版前言

“数据结构”课程是计算机及相关专业的一门重要的专业基础课程。它不仅是计算机程序设计的理论基础,还是学习计算机操作系统原理、编译原理、数据库原理等课程的重要基础。

数据结构的主要任务是讨论数据的各种逻辑结构和数据在计算机中的存储表示,以及各种非数值运算算法的实现。通过“数据结构”课程的学习,使学生能使用数据结构的基本分析方法来提高编写程序的能力和应用计算机解决实际问题的能力。

本书编写的定位是大学本科和高职高专计算机专业的学生,采用“以应用为目的,以够用为度”的原则,从应用实际的需求出发,大胆取舍,注重实用性。本书对数据结构的概念和原理的阐述通俗易懂,例子翔实,习题丰富,对数据结构基本运算的分析注重其实现过程。对于书中的重要算法均给出了完整的C/C++语言源程序,并全部在VC++环境中运行通过。

本书以“数据结构实验演示系统”为主线来组织教材的编写。本书的实践性环节分为验证性实验、自主性设计实验、课程实训和课程设计四个层次。本书前10章每章都有一个验证性实验和一个自主设计实验。每一章的验证性实验构成一个相对独立的子系统,主要用来验证各章教学的重点算法;自主设计实验是要求学生自主设计完成的程序,每个实验都有详细的设计要求;课程实训是把各章验证性实验的子系统组装成一个完整的数据结构实验系统,并在此基础上扩充自主设计实验的算法;课程设计的目的则是为了进一步提高和巩固学生分析问题和解决问题的能力,使编程能力得到有效的巩固和提高。

本书内容共分12章,第1章绪论,介绍了数据结构与算法的基本概念;第2章至第5章,介绍了线性表、栈、队列、串等线性结构的逻辑特征、存储方法以及常用算法的实现和基本应用;第6章多维数组和广义表介绍了它们的存储方法以及基本算法;第7章和第8章,介绍了树和图两种非线性数据结构的逻辑特征、存储方法以及相关算法的实现和基本应用;第9章查找,主要介绍了顺序查找、二分查找和二叉排序树的查找方法以及散列存储的基本方法;第10章排序,介绍了在计算机中广泛使用的各种排序方法,并对各种排序算法的优劣进行了分析和比较。各章内容相对独立,自成体系。

第11章是数据结构课程实训,让学生设计一个主控模块,用以调用第2章至第10章的9个验证性实验的子系统,完成一个数据结构实验系统的组装。本章的作用是学习文件包含处理的基本方法,让学生在学好数据结构基本算法的同时,建立起系统设计的初步概念。

第12章是数据结构课程设计,精选了24个数据结构的典型题目,并按照从易到难的顺序分为A、B、C三个类别。其中A类课题6个,B类课题9个,C类课题9个。每个课题都有明确的设计目的、设计内容和设计要求。学生可以根据自己的学习基础选做适当的课程设计题目。

《实用数据结构基础》自2003年8月出版,到2007年6月共印刷了7次。《实用数据结构基础(第二版)》由陈元春修订。第二版自2007年8月出版,至2010年6月也印刷了7次。《实用数据结构基础(第三版)》中王中华编写了第12章;重画了第2章、第4章部分插图;修订和增加了第2章、第4章、第7章部分源代码;增加了8.2.3节的十字链表,充实了8.5节的最短路径,增加了8.6节的有向无环图及其应用,并且增加了部分图表和源代码;充实了9.3.2节的平衡二叉树;修订了第10章堆排序的部分内容。陈元春对第11章内容进行了修改,并改名为“数据结构课程实训”;对各章过渡文字和错误进行了修订,并完成全书的定稿工作。

学习本课程的学生应具备C或C++的初步编程能力。使用本教材的总学时建议为72学时,其中实验性课程约占32学时。

本书集教材、习题、实验、实训和课程设计于一体,使用本书的学生,一册在手就能方便地进行数据结构课程的理论学习和实验、实训、课程设计等实践性环节的训练。本书配套的电子教案中有几十个数据结构演示动画供读者学习使用。

由陈元春、王淮亭合编的《实用数据结构基础学习指导》也由中国铁道出版社出版。该书与本教材密切配合,内容包括:各章要点分析;典型习题分析;各章单元练习解答;自主设计实验指导,以及与教学内容紧密配套的六套模拟试卷。

中国铁道出版社编辑参与了本书的审稿和编排工作,在此一并表示感谢!

由于作者水平有限,书中疏漏或不妥之处在所难免,恳请广大专家和读者不吝赐教。

编 者

2010年12月