《数据结构课程设计》列举了数据结构课程设计实例,通过综合训练,能够培养学生实际分析问题、解决问题、编程和动手操作等多方面的能力,最终目的是帮助学生系统地掌握该门课程的基本内容,并运用所学的数据结构知识去解决实际问题。
全书共8章,内容包括数据库课程设计概述、线性表、栈、队列、串、多维数组和广义表、树状结构、图状结构等问题的应用。
《数据结构课程设计》是一本独立于具体的数据结构教材的课程设计辅导书,通过针对每种数据结构的具体实例,循序渐进地启发学生完成设计。书中给出的实例都是完整可运行的,同时给出了测试样例、总结与思考等,是一本很好的教学辅导参考书。
《数据结构课程设计》共分为8章。第1章是关于数据结构课程设计的概述;第2~8章按照一般教学顺序,分别给出线性表、栈、队列、串、多维数组和广义表、树状结构和图状结构的课程设计实例。 《数据结构课程设计》可作为高等院校计算机专业及相关专业教材或参考书,也可供从事软件开发工作和计算机编程爱好者参考。
“数据结构”课程的教学目标是要求学生学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,以便为应用所涉及的数据选择适当的逻辑结构、存储结构以及相应算法,初步掌握算法时间空间分析的技巧,培养良好的程序设计技能。
数据结构的学习过程是进行复杂程序设计的训练过程。技能培养的重要程度不亚于知识传授,学生不仅要理解授课内容,还应培养应用知识解答复杂问题的能力,形成良好的算法设计思想、方法技巧与风格,进行构造性思维,强化程序抽象能力和数据抽象能力。因此,学习数据结构,仅从书本上学习是不够的,必须经过大量的实践,在实践中体会构造性思维的方法,掌握数据组织与程序设计的技术。
在该课程的学习过程中,初学者会感到困惑,其主要原因:一是数据结构内容抽象;二是动态存储结构难以理解;三是使用多种技术,如递归技术等掌握较为困难;四是算法描述、设计无从下手等。
为了使学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业的学习打好基础,本人根据学生的学习特点及自己二十多年的教学经验和总结,编写了本书,希望能给学生带来一些启发。
编写本书的出发点不是要给学生几个课程设计实例,而是希望通过一些典型的课程设计实例训练,使学生掌握如何利用数据结构知识去解决实际问题。
全书共分为8章。第1章是关于数据结构课程设计的概述;第2~8章按照一般教学顺序,分别给出线性表、栈、队列、串、多维数组和广义表、树状结构和图状结构的课程设计实例。
本书是在作者的“数据结构”讲义和指导学生的“课程设计大作业”基础上编写而成的。第2~8章的课程设计分别由宫耀勤、李闯、张伟、丛飚、逯洋、李淑梅和英昌盛完成修改或设计,2007级学生王旭峰、杨名、张洋铭、袁洋、杨静、王珊珊和张群等参加了部分代码编写和程序调试,夏凤琴、刘艳玲、姚建盛、李颖、张桂杰、梁微、代胜男、罗琳、郝万萍和王金平等人进行了文稿的校对,最后由英昌盛对源程序统一整理,作者谨此一并致以诚挚的谢意。全书由滕国文教授统稿、审阅和整理后定稿。
在本书的编写过程中,作者参阅并借鉴了国内外诸多同行的文章和著作,这里不再一一列举、标明,在此向他们致以谢意。
由于作者知识水平有限,时间仓促,本书难免有不足之处,恳请专家和读者批评指正。
滕国文
2010年4月数据结构课程设计
第1章 数据结构课程设计概述1
1.1 数据结构简介1
1.2 课程设计目标和特点2
1.3 编写说明3
1.4 课程设计实例的标准格式4
第2章 线性表的应用6
2.1 存储结构与基本运算的算法6
2.2 集合的交、并运算15
2.3 学生成绩管理18
2.4 多项式求导25
2.5 约瑟夫环问题30
2.6 数据库管理系统34
第3章 栈的应用58
3.1 存储结构与基本运算的算法58
3.2 括号匹配63
3.3 汉诺塔问题66
3.4 算术表达式求值69
3.5 马踏棋盘76
第4章 队列的应用82
4.1 存储结构与基本运算的算法82
4.2 看病排队候诊问题88
4.3 数制的转换91
4.4 停车场管理99
4.5 基数排序107
第5章 串的应用114
5.1 存储结构与基本运算的算法114
5.2 KMP算法118
5.3 最长公共子串121
5.4 大整数计算器123
数据结构课程设计目 录
第6章 多维数组和广义表的应用130
6.1 存储结构与基本运算的算法130
6.2 魔方阵139
6.3 稀疏矩阵的加法运算143
6.4 本科生导师制问题151
第7章 树状结构的应用169
7.1 存储结构与基本运算的算法169
7.2 线索二叉树的创建与遍历172
7.3 由遍历确定二叉树175
7.4 电文的编码和译码177
7.5 家族关系查询系统183
第8章 图状结构的应用201
8.1 存储结构与基本运算的算法201
8.2 地铁建设问题209
8.3 安排教学计划214
8.4 校园导航218
附录A 课程设计实例软件包224
参考文献227