自1978年美籍华裔学者冀中田教授在国内首开“数据结构”课程以来,经过20余年的发展,这门课程已成为各大学计算机专业本科的主干课程,也成为非计算机类学生和研究生学习计算机的必修课程。
“数据结构”课程脱胎于“离散数学结构”,它涉及各种离散结构(如表、向量、集合、树、图、代数方程和多项式等)在计算机上如何存储和处理,这是从事计算机硬、软件科研与开发的人们必须了解的。特别是引入抽象数据类型的概念和面向对象模式,更能够适应软件开发人员的需要。
从1998年开始,中央广播电视大学与清华大学合作,开设计算机科学与技术专业本科生课程。依据教学大纲的要求,我们编写了这本《数据结构》教材。教材的编写原则体现基本知识的学习与基本技能的培养并重,采用支持传统的面向过程的开发模式和先进的面向对象开发模式的C++语言作为描述语言,有利于学生在编程方式和习惯方面的转换。教材中给出的算法不再用伪码,直接用可执行的C++代码描述,读者直接输入计算机,简单整理即可运行。
学好“数据结构”课程,将为后续的“数据库系统”、“操作系统”、“编译原理”等专业课程,打下良好的知识基础,而且还为软件开发和程序设计提供了必要的技能训练。
本课程要求学员对计算机的组成有基本的了解,对程序设计方法有一定基础,对C语言编程,最好是C++语言编程有一定的经验。对涉及离散数学的知识,如表、树、图和集合等,有初步的了解。事实上,教材中将会简单地补充这些方面的内容。
本教材内容丰富,条理清晰,叙述易懂,算法简洁,可读性强。对于重点或要点,在书中用黑体字加以强调。如果讲课时间不够,可根据时间和能力,适当对全书需要学习的内容加以剪裁。本着少讲多练的原则,可以对每种结构,只介绍类定义和关键操作的实现,其它内容可以让同学自学。通过上机练习,加深理解。
与本教材配套的用PowerPoint制作的教学幻灯片已经完成并投入使用,如有需要者可与清华大学出版社联系。在教学过程中习题的安排在“附录B教学进度与习题安排参考”中写明。习题的参考答案在与本教材配套的《数据结构实验及习题解答》(清华大学出版社)一书中给出。
在本教材的成书过程中,得到清华大学计算机系和中央广播电视大学有关领导的关心,以及清华大学出版社的支持。中央电大徐孝凯副教授参与了全书的编写过程,对教材内容、教材体系安排、习题选择等都提出了宝贵的意见。清华大学计算机系聂宇、王映和魏小亮同学对书中的许多程序做了调试。此外,在教材的大纲和考核要求的制订过程中,还得到了北京航空航天大学计算机系唐发根教授、石油化工大学周树杰教授的帮助,最后由北京大学计算机系孙家骕教授,北京理工大学计算机系江涛教授,北京工商大学计算机系刘杰副教授对本书进行了终审,在此表示衷心的谢意。
由于作者的水平和经验所限,教材中还可能存在错误和不足,恳请读者给予批评指正。