前言
“数据结构”是有关计算技术及信息管理技术专业的一门必修的核心课程。“数据结构”课程的任务是讨论在应用问题求解时数据的逻辑组织、在计算机中的存储实现以及相关操作的算法。“数据结构”课程的目的是使学生掌握在实际问题解决过程中如何组织数据、如何存储数据和如何处理数据的基本方法,为进一步学习后续课程,以及为以后从事软件开发和应用打下坚实的基础。
本书是清华大学出版社出版的“清华大学计算机系列教材”《数据结构(用面向对象方法与C++语言描述)》和“教育部人才培养模式和开放教育试点教材”《数据结构》的配套教材,提供了学习“数据结构”的一些指导性建议和考试的样例。它给出主教材中绝大多数习题的参考答案和分析,还针对基本概念补充了一些知识性的练习,对于复习和准备考试的学生有一定参考价值。但对于正在学习“数据结构”课程的学生,应以掌握知识和培养能力为主,不应过多地依赖现成的习题解答。本书只应作为一个参考,不应当作拐杖。
当前,数据结构的教授方法有两种。一种是注重数据结构本身的知识体系,认为“数据结构”课程应以学生是否能掌握在应用开发中如何组织、存储、变换数据为主,使用什么语言描述数据结构和算法都可以。持这种观点的教材多以类Pascal、类C或其他伪码作为数据结构和算法的描述工具。另一种是注重数据结构的工程应用,直接以某种可以在计算机上实现的语言来描述数据结构和算法。随着软件开发技术的发展,后一种数据结构的教学方法在国际上普遍得到认可。因为面向对象的软件分析和设计方法已经成为软件开发的主流方法,如果学生在学习数据结构和程序设计的课程时养成一种动辄用面向过程的传统方法解决问题的习惯,将来学习面向对象方法时将难以接受新的思维,或者不知如何着手,因此,必须及早改变这种学习方式,从学习面向对象程序设计和用面向对象方法描述的数据结构入手,培养学生用先进的方法来描述问题和解决问题的能力。
本书的主教材在清华大学计算机系已经讲授了3轮,在中央电大计算机应用专业也应用了两年。从学生反映来看,是成功的。我们将根据在教学实践中取得的经验和暴露的问题,不断改进教学体系和教学内容,增强实践环节,使“数据结构”课程能够紧跟国际发展,为培养高水平计算机软件人员打下良好的基础。
本教材是基于多年来的教学实践整理成的,希望能对广大读者的学习起到促进作用。但由于时间仓促和我们的水平所限,错误和疏漏在所难免,敬请读者提出宝贵意见。