数据结构是计算机专业和电子信息专业的重要专业基础课程之一。在计算机课程体系中起到承上启下的作用,它是操作系统、软件工程、数据库、编译原理、计算机图形学等课程的基础。近年来,随着计算机应用领域的不断拓展,许多非计算机专业也把数据结构作为重要的选修课程之一,以期加强学生程序设计能力。
作者在多年的数据结构课程教学实践中发现,初学者普遍感觉数据结构抽象难懂,对于数据结构应用于何处、如何应用也比较迷茫。作者也一直在思考这个问题,经过深入分析以后,感到造成这一现象的原因是,现在的教科书多以抽象理论讲解为主,不考虑应用,与实际应用脱节。在本书编写过程中,尝试引用一些实用案例,这些案例都是我们身边发生的事情,既生动有趣,��能诠释数据结构理论,从而变抽象为具体。
除此之外,本书还具有以下特色。
(1)在讲解每种新类型时,由一个贴近生活实际的小例子引入,如以奥运会门票预订为例引入队列,先给学生一个感性认识,然后再过渡到抽象的理论,使学生易于理解、易于接受。
(2)在讲解各种数据结构与算法的同时,给出大量例题。通过例题进一步阐述数据结构理论,同时引导学生灵活运用理论解决问题,从而达到举一反三的目的。
(3)在每一章的*后部分提供一个综合实例,从实用角度诠释如何用数据结构解决现实生活中存在的问题,如用查找和排序生成“十大流行歌手排行榜”。这样会给学生以学以致用的感受,激发他们的学习兴趣。
(4)在每章的*后提供了大量精选习题。通过这些习题的训练,可使学生巩固所学知识,进而灵活运用所学知识。
(5)每章还提供一至两个实验,便于学生上机练习。
(6)附录A给出一个综合测试,用于检验学习效果。
(7)书中所有算法都由C语言实现(均在Visual C++6.O下调试通过),并有详尽的注释,有些还给出测试程序,供学生验证和模仿,以加深学生对算法的理解。
全书共分九章。第1章介绍数据结构、抽象数据类型与算法的一些基本概念;第2章介绍线性表的逻辑结构和两种存储结构(顺序表和链表),以及基本操作的实现;第3章介绍栈和队列,讨论栈和队列特点,相应的存储结构及基本操作的实现,给出栈和队列的一些应用实例;第4章介绍串的基本概念、模式匹配算法,讨论串的各种存储结构,以及基本操作的实现;第5章介绍数组和广义表的基本概念,讨论数组和广义表的存储结构,以及特殊矩阵、稀疏矩阵和广义表的基本运算;第6章介绍树与二叉树,包括树与二叉树的定义与表示,讨论树与二叉树的存储结构,以及树与二叉树的遍历和相互转换;第7章介绍图,包括图的基本概念,讨论图的存储结构,以及图的一些应用;第8章介绍各种常见的查找算法及实现;第9章介绍各种常见的内部排序算法及实现;附录A为综合测试。