数据结构课程设计(第2版)
基本信息
内容简介回到顶部↑
为了配合数据结构课程的教学,加强读者对数据结构算法实际应用技能的训练,提高读者分析问题和解决问题的能力,本书选取并讨论了多个方面应用的课程设计。全书共分10章,给出了与数据结构内容相关的知识解析、算法分析以及课程设计,描述了相关数据结构的存储表示及其实际应用的操作算法,对用类c语言描述的各种算法进行了详细的注释和性能分析,并对各应用的解题思路、方法进行了较详细的分析。全书特别注重对实践应用问题的分析和理解,内容丰富,概念清楚,通俗易懂。
本书可作为高等院校各类相关专业本科生、专科生学习数据结构的辅助教材以及实验指导用书,也可作为广大从事计算机软件与应用的工作人员及社会大众学习数据结构的参考用书。
本书可作为高等院校各类相关专业本科生、专科生学习数据结构的辅助教材以及实验指导用书,也可作为广大从事计算机软件与应用的工作人员及社会大众学习数据结构的参考用书。
目录回到顶部↑
专家指导委员会
前言
第0章 绪论 1
0.1 课程设计特点 1
0.2 课程设计结构 1
第1章 链表的应用 5
1.1 知识解析 5
1.1.1 线性表的基础知识 5
1.1.2 线性表的基本运算 7
1.2 算法设计与分析 9
1.2.1 顺序表上的相关操作 9
1.2.2 线性链表上相关操作的算法
及其分析 11
1.3 一元多项式的运算 13
1.3.1 问题分析 14
1.3.2 算法解析 14
1.3.3 完整程序清单 17
1.3.4 程序运行测试 19
1.4 通讯录管理系统的设计与实现 20
1.4.1 问题分析 20
前言
第0章 绪论 1
0.1 课程设计特点 1
0.2 课程设计结构 1
第1章 链表的应用 5
1.1 知识解析 5
1.1.1 线性表的基础知识 5
1.1.2 线性表的基本运算 7
1.2 算法设计与分析 9
1.2.1 顺序表上的相关操作 9
1.2.2 线性链表上相关操作的算法
及其分析 11
1.3 一元多项式的运算 13
1.3.1 问题分析 14
1.3.2 算法解析 14
1.3.3 完整程序清单 17
1.3.4 程序运行测试 19
1.4 通讯录管理系统的设计与实现 20
1.4.1 问题分析 20
前言回到顶部↑
数据结构是计算机专业的必修、主干课程之一,它旨在使读者学会分析、研究计算机加工的数据对象的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算(操作),把现实世界中的问题转化为计算机内部的表示和处理,这是一个良好的程序设计技能训练的过程。在整个教学或学习过程中,解题能力和技巧的训练是一个重要的环节。为了指导和帮助读者更好地学习、实践数据结构这门课程,帮助教师讲授“数据结构”课程,满足指导和评价“课程设计”的需要,我们编写了这本书。
作者在长期讲授数据结构这门课程的过程中体会到,每次在布置课程设计或作业时,总是要冥思苦想,对选什么样的题、如何评分等难以定夺;而读者也对如何利用书本中的基本知识和方法解决一些实际问题,以及对问题的求解进行算法设计感到难以下手。实践证明,理解课程内容与较好地解决实际问题之间存在着明显差距,而算法设计完成的质量与基本的程序设计素质的培养是密切相关的。要想理解和巩固所学的基本概念、原理和方法,牢固地掌握所学的基本知识、基本技能,达到融会贯通、举一反三的目的,就必须多做、多练、多见(见多识广)。正是为了达到上述目的,本书中通过一些实际的应用,对一些重要的数据结构和算法进行解读。经过循序渐进地训练,就可以使读者掌握更多的程序设计技巧和方法,提高分析问题、解决问题的能力。
本书遵循数据结构课程的教学大纲要求,内容共分10章:第0章是绪论,简要介绍后9章中各课程设计的内容概要,以便作为后面学习的引导;第1章是链表的应用,用三个课程设计实例来讨论单链表和单循环链表的存储结构及相关算法的分析和应用;第2章是栈和队列的应用,用两个设计实例讨论栈和队列的存储结构以及栈、队列、回溯等概念的应用;第3章是文本文件的检索,本章用了一个文本检索的设计实例,将串的存储结构、串的各种操作都蕴涵其中;第4章有两个方面的内容,一个是稀疏矩阵的存储及运算,另一个是广义表的各种操作的实现;第5章是树结构的应用,本章主要涉及树、二叉树的存储结构及其遍历,以及赫夫曼树和赫夫曼编码的生成及其应用;第6章是图结构的应用,这一章中讨论了一个非常有实用价值的图结构应用实例,即交通网络中的最短路径问题;第7章用一个课程设计实例讨论了各种排序算法的具体实现和应用;第8章讨论排序和查找两个方面的应用实例;第9章是文件的应用,它是一个综合的应用设计,不仅用到文件的概念,还用到静态链表和数组等存储结构,也用到了排序、查找等概念。
为了提高学生分析问题和解决问题的能力,在每章中都对数据结构中的主要知识进行了归纳和解析,对与课程设计相关的算法进行了实例分析。而且,每章中都选择了一两个课程设计实例,这些设计内容丰富、涉及面广、难易适当,能给学习数据结构这门课程的读者以启发,达到让读者掌握相关知识和开阔视野的目的。因此,对书中大部分设计题目都做了解析,并给出了参考算法和源程序代码。
本书由苏仕华、魏韦巍、王敬生和刘燕君共同编写,魏韦巍还负责全书所有课程设计实例的程序调试和验证工作。为了确保程序质量,苏仕华和刘燕君又在春节期间对全部程序进行了验证与优化。
在本书的编写过程中,得到了中国科学技术大学计算机系黄刘生教授、自动化系刘振安教授的大力支持和帮助,他们对本书的编写提出了许多宝贵的意见。另外,本书还参考了大量作者的书籍和资料等,在此致以诚挚的谢意。
由于作者水平有限、时间仓促,书中难免存在缺点和错误,殷切希望广大读者及同行们批评指正。
编 者
2010年2月于合肥
作者在长期讲授数据结构这门课程的过程中体会到,每次在布置课程设计或作业时,总是要冥思苦想,对选什么样的题、如何评分等难以定夺;而读者也对如何利用书本中的基本知识和方法解决一些实际问题,以及对问题的求解进行算法设计感到难以下手。实践证明,理解课程内容与较好地解决实际问题之间存在着明显差距,而算法设计完成的质量与基本的程序设计素质的培养是密切相关的。要想理解和巩固所学的基本概念、原理和方法,牢固地掌握所学的基本知识、基本技能,达到融会贯通、举一反三的目的,就必须多做、多练、多见(见多识广)。正是为了达到上述目的,本书中通过一些实际的应用,对一些重要的数据结构和算法进行解读。经过循序渐进地训练,就可以使读者掌握更多的程序设计技巧和方法,提高分析问题、解决问题的能力。
本书遵循数据结构课程的教学大纲要求,内容共分10章:第0章是绪论,简要介绍后9章中各课程设计的内容概要,以便作为后面学习的引导;第1章是链表的应用,用三个课程设计实例来讨论单链表和单循环链表的存储结构及相关算法的分析和应用;第2章是栈和队列的应用,用两个设计实例讨论栈和队列的存储结构以及栈、队列、回溯等概念的应用;第3章是文本文件的检索,本章用了一个文本检索的设计实例,将串的存储结构、串的各种操作都蕴涵其中;第4章有两个方面的内容,一个是稀疏矩阵的存储及运算,另一个是广义表的各种操作的实现;第5章是树结构的应用,本章主要涉及树、二叉树的存储结构及其遍历,以及赫夫曼树和赫夫曼编码的生成及其应用;第6章是图结构的应用,这一章中讨论了一个非常有实用价值的图结构应用实例,即交通网络中的最短路径问题;第7章用一个课程设计实例讨论了各种排序算法的具体实现和应用;第8章讨论排序和查找两个方面的应用实例;第9章是文件的应用,它是一个综合的应用设计,不仅用到文件的概念,还用到静态链表和数组等存储结构,也用到了排序、查找等概念。
为了提高学生分析问题和解决问题的能力,在每章中都对数据结构中的主要知识进行了归纳和解析,对与课程设计相关的算法进行了实例分析。而且,每章中都选择了一两个课程设计实例,这些设计内容丰富、涉及面广、难易适当,能给学习数据结构这门课程的读者以启发,达到让读者掌握相关知识和开阔视野的目的。因此,对书中大部分设计题目都做了解析,并给出了参考算法和源程序代码。
本书由苏仕华、魏韦巍、王敬生和刘燕君共同编写,魏韦巍还负责全书所有课程设计实例的程序调试和验证工作。为了确保程序质量,苏仕华和刘燕君又在春节期间对全部程序进行了验证与优化。
在本书的编写过程中,得到了中国科学技术大学计算机系黄刘生教授、自动化系刘振安教授的大力支持和帮助,他们对本书的编写提出了许多宝贵的意见。另外,本书还参考了大量作者的书籍和资料等,在此致以诚挚的谢意。
由于作者水平有限、时间仓促,书中难免存在缺点和错误,殷切希望广大读者及同行们批评指正。
编 者
2010年2月于合肥

点击看大图
加载中...
