出版时间:2010-9 出版社:清华大学出版社 作者:滕国文 页数:226
Tag标签:无
前言
“数据结构”课程的教学目标是要求学生学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,以便为应用所涉及的数据选择适当的逻辑结构、存储结构以及相应算法,初步掌握算法时间空间分析的技巧,培养良好的程序设计技能。数据结构的学习过程是进行复杂程序设计的训练过程。技能培养的重要程度不亚于知识传授,学生不仅要理解授课内容,还应培养应用知识解答复杂问题的能力,形成良好的算法设计思想、方法技巧与风格,进行构造性思维,强化程序抽象能力和数据抽象能力。因此,学习数据结构,仅从书本上学习是不够的,必须经过大量的实践,在实践中体会构造性思维的方法,掌握数据组织与程序设计的技术。在该课程的学习过程中,初学者会感到困惑,其主要原因:一是数据结构内容抽象;二是动态存储结构难以理解;三是使用多种技术,如递归技术等掌握较为困难;四是算法描述、设计无从下手等。为了使学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业的学习打好基础,本人根据学生的学习特点及自己二十多年的教学经验和总结,编写了本书,希望能给学生带来一些启发。编写本书的出发点不是要给学生几个课程设计实例,而是希望通过一些典型的课程设计实例训练,使学生掌握如何利用数据结构知识去解决实际问题。全书共分为8章。第1章是关于数据结构课程设计的概述;第2~8章按照一般教学顺序,分别给出线性表、栈、队列、串、多维数组和广义表、树状结构和图状结构的课程设计实例。本书是在作者的“数据结构”讲义和指导学生的“课程设计大作业”基础上编写而成的。第2~8章的课程设计分别由宫耀勤、李闯、张伟、丛飚、逯洋、李淑梅和英昌盛完成修改或设计,2007级学生王旭峰、杨名、张洋铭、袁洋、杨静、王珊珊和张群等参加了部分代码编写和程序调试,夏凤琴、刘艳玲、姚建盛、李颖、张桂杰、梁微、代胜男、罗琳、郝万萍和王金平等人进行了文稿的校对,最后由英昌盛对源程序统一整理,作者谨此一并致以诚挚的谢意。全书由滕国文教授统稿、审阅和整理后定稿。
内容概要
本书列举了数据结构课程设计实例,通过综合训练,能够培养学生实际分析问题、解决问题、编程和动手操作等多方面的能力,最终目的是帮助学生系统地掌握该门课程的基本内容,并运用所学的数据结构知识去解决实际问题。 全书共8章,内容包括数据库课程设计概述、线性表、栈、队列、串、多维数组和广义表、树状结构、图状结构等问题的应用。 本书是一本独立于具体的数据结构教材的课程设计辅导书,通过针对每种数据结构的具体实例,循序渐进地启发学生完成设计。书中给出的实例都是完整可运行的,同时给出了测试样例、总结与思考等,是一本很好的教学辅导参考书。 本书可作为高等院校计算机专业及相关专业教材或参考书,也可供从事软件开发工作和计算机编程爱好者参考。
书籍目录
第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
章节摘录
插图:数据结构是计算机理论与技术的重要基石,是计算机科学的核心课程之一。用计算机求解任何问题都离不开程序设计,而程序设计的实质是数据表示和数据处理。著名的瑞士计算机科学家沃思(N. Wirth)教授曾指出:算法+数据结构一程序。这里的数据结构是指数据的逻辑结构和存储结构,而算法则是对数据运算的描述。由此可见,程序设计的实质是对实际问题选择一种好的数据结构,再设计一个好的算法,而好的算法在很大程度上取决于描述实际问题的数据结构。数据结构不仅是一般程序设计的基础,而且是设计和实现操作系统、数据库及其他系统程序和大型应用程序的重要基础。1968年,著名的美国算法大师克努特(D. E. Knuth)教授开创了“数据结构”的最初体系,他所著的《计算机程序设计艺术》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和物理结构及其操作的著作。20世纪70年代初,“数据结构”作为一门独立的课程开始进入大学课堂。数据结构是计算机科学与技术各专业的核心课程,它既是理论性较强的基础课,又是实践性很强的专业技术课,在计算机科学领域的主干课程中具有承上启下的作用。它的先行课程有计算机基础、程序设计语言、离散数学和数学等;后继课程有操作系统、数据库原理、编译原理和软件开发技术等。“数据结构”的发展趋势包括两个方面:一方面是面向专门领域中特殊问题的数据结构的研究和发展,如图形数据结构、知识数据结构和空间数据结构;另一方面从抽象数据类型的角度出发,用面向对象的观点来讨论数据结构,已成为新的发展趋势。2.数据结构课程的教学目标数据结构课程的教学目标是要求学生学会分析数据对象特征,掌握数据在计算机中的组织方法和表示方法,以便为应用所涉及的数据选择适当的逻辑结构、存储结构及相应算法,初步掌握算法分析的技巧,培养良好的程序设计技能。
编辑推荐
《数据结构课程设计》是独立于具体的数据结构教材的课程设计辅导书,是用于指导学生完成“数据结构课程设计”大作业的理想教材。通过针对每种数据结构的具体实例,循序渐进地启发学生完成设计。每个课程设计实例都从提出问题、设计要求,到选择使用的数据结构、问题的分析与实现,最后给出完整可运行的源程序,同时给出了测试样例。每个课程设计实例的总结与思考是该课程设计的拓展部分。学生可以在具体实例的基础上,根据指导自己去开发设计,达到举一反三,真正提高自身实践能力的目的。对于较大的课程设计实例,可以将其划分为几个子项目,多个学生分工合作共同完成,以培养学生的团队合作精神。
图书封面
图书标签Tags
无
评论、评分、阅读与下载