当今的程序设计员不但要掌握一般的程序设计技巧,而且还要对计算机加工处理的对象进行系统的研究。数据结构正是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
数据结构在计算机科学的各领域中应用十分广泛,如编译系统中要使用栈、语法树等; 操作系统中要使用队列、存储管理表、目录树等; 数据库系统中要使用线性表、链表、索引树等; 人工智能中要使用广义表、检索树、图等; 同样在面向对象的程序设计、计算机图形学、多媒体技术、软件工程等领域,都会用到各种不同的数据结构。因此,学好数据结构可以使你掌握更多的程序设计技巧,并能评价出算法的优劣,为以后学习计算机专业课程及走上工作岗位从事计算机大型软件开发打下良好的基础。目前,数据结构不仅是计算机专业的核心课程,而且是其他非计算机专业的主要选修或必修课程。
数据结构随着程序设计的发展而发展,面向对象技术是目前最流行的程序设计技术。为了适应形式的需要,有必要开设结合面向对象技术的数据结构课程。本书采用面向对象的观点讨论数据结构技术,并以C++语言作为算法描述工具。
由于数据结构所涉及的原理和算法比较抽象,学生所掌握程序设计的知识较少,往往难以理解数据结构中的原理,在解答数据结构习题和上机实践时感到无从下手。作者在多年的教学过程中对此深有感触,针对这一现象,作者编写了这本《数据结构与应用教程(C++版)题解与实验指导》,目的是通过对习题的解答和实验引导,使学生充分掌握数据结构的原理以及求解数据结构问题的思路和方法,编写出符合数据结构规范的算法,进一步加深对基本概念的理解,提高分析问题和解决问题的能力,为专业的后续课程及编写大型程序的数据结构方面的问题打好坚实的基础。
本书具有以下特色和价值。
(1) 与主教材紧密结合。
把习题、实验与主教材作为学好数据结构课程的有机组成部分,多位一体,互为补充。
(2) 不同习题,不同对待。
对于稍难的习题,书中都作了比较详细的分析,或在算法中加了注释。
(3) 所有算法都给出了实现代码。
所有算法的代码均在Visual C++ 6.0环境下调试通过,读者只需通过主函数来调用它们,就可以边看书边上机看效果,这样有助于读者更好地理解、把握算法的精髓。
(4) 循序渐进地进行实践动手能力的训练。
本书安排了如下3类实验。
(1) 验证性实验: 其主要内容是将书上的重要数据结构进行上机实现,深化理解和掌握理论知识,这部分实验不需要学生自己设计,只需将给定的方案实现即可。
(2) 设计性实验: 其主要内容是针对具体问题,应用某一个知识点,自己设计方案,并上机实现,目的是培养学生对数据结构的简单应用能力。
(3) 综合性实验: 其主要内容是针对具体问题,应用某几个知识点,自己设计方案,并上机实现,目的是培养学生对数据结构的综合应用能力。
本书由马石安和魏文平编写,全书由马石安统一修改、整理和定稿。
在编写过程中,参考和引用了大量书籍和文献资料,在此,向被引用文献的作者表示衷心的感谢,向给予本书帮助的所有人士表示衷心感谢,尤其感谢江汉大学和清华大学出版社领导的大力支持与帮助。
由于作者水平有限、加之时间仓促,书中难免存在缺点与疏漏,敬请读者及同行们予以批评指正。作者联系方式是wenpingwei@163.com,欢迎各位同仁探讨数据结构教学中的相关问题。
编者
2013年10月