“数据结构”课程的教学目标是要求学生学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,以便为应用所涉及的数据选择适当的逻辑结构、存储结构以及相应算法,初步掌握算法时间空间分析的技巧,培养良好的程序设计技能。
数据结构的学习过程是进行复杂程序设计的训练过程。技能培养的重要程度不亚于知识传授,学生不仅要理解授课内容,还应培养应用知识解答复杂问题的能力,形成良好的算法设计思想、方法技巧与风格,进行构造性思维,强化程序抽象能力和数据抽象能力。因此,学习数据结构,仅从书本上学习是不够的,必须经过大量的实践,在实践中体会构造性思维的方法,掌握数据组织与程序设计的技术。
在该课程的学习过程中,初学者会感到困惑,其主要原因:一是数据结构内容抽象;二是动态存储结构难以理解;三是使用多种技术,如递归技术等掌握较为困难;四是算法描述、设计无从下手等。
为了使学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业的学习打好基础,本人根据学生的学习特点及自己二十多年的教学经验和总结,编写了本书,希望能给学生带来一些启发。
编写本书的出发点不是要给学生几个课程设计实例,而是希望通过一些典型的课程设计实例训练,使学生掌握如何利用数据结构知识去解决实际问题。
全书共分为8章。第1章是关于数据结构课程设计的概述;第2~8章按照一般教学顺序,分别给出线性表、栈、队列、串、多维数组和广义表、树状结构和图状结构的课程设计实例。
本书是在作者的“数据结构”讲义和指导学生的“课程设计大作业”基础上编写而成的。第2~8章的课程设计分别由宫耀勤、李闯、张伟、丛飚、逯洋、李淑梅和英昌盛完成修改或设计,2007级学生王旭峰、杨名、张洋铭、袁洋、杨静、王珊珊和张群等参加了部分代码编写和程序调试,夏凤琴、刘艳玲、姚建盛、李颖、张桂杰、梁微、代胜男、罗琳、郝万萍和王金平等人进行了文稿的校对,最后由英昌盛对源程序统一整理,作者谨此一并致以诚挚的谢意。全书由滕国文教授统稿、审阅和整理后定稿。
在本书的编写过程中,作者参阅并借鉴了国内外诸多同行的文章和著作,这里不再一一列举、标明,在此向他们致以谢意。
由于作者知识水平有限,时间仓促,本书难免有不足之处,恳请专家和读者批评指正。
滕国文
2010年4月数据结构课程设计
