数据结构教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程简介
人们在运用程序设计语言编写程序的过程中发现所有的数据都可以抽象为三种结构,而对这些数据的所有操作都可以转化为对这三种数据的几种基本操作,而大多数的程序设计技巧都可以抽象为一些最基本的算法。于是人们逐步发展了一门称为数据结构(或数据结构与算法)的计算机科学,它广泛应用于计算机领域。
数据结构是信息与计算专业的核心基础课程之一。数据是计算机处理的对象,本课程研究的数据是非数值性、结构性的数据。学习本课程要求掌握各种主要数据结构的特点、计算机内的表示方法,以及处理数据的算法,对于算法所花费的时间和空间代价的分析也要求有一定程度的了解和掌握。通过本课程的学习,使学生透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养基本的良好的程序设计能力。本课程主要包括如下三个方面的内容:
1.基本数据结构:线性表、栈、队列、串、数组和广义表,掌握它们的特点、表示和实现,对静态结构要求非常熟练的编程上机实现,对动态结构要求逐步熟悉链表的表示,通过模仿实验教程中的例子,掌握编程技巧。强调类C语言的书写规范,特别注意参数的区别,输入输出的方式和错误处理方式,以及抽象数据类型的表示和实现。能熟练完成以下的应用:多项式的计算、语法检查、回朔算法、递归算法、表达式求值、离散事件模拟、文字的编辑和稀疏矩阵进行矩阵运算采用的处理方法。
2.复杂数据结构:树、二叉树、图。掌握它们的定义和特点、表示和实现,特别注意与基本数据结构的区别,掌握各种遍历的递归和非递归算法,能熟练完成以下的应用:最优树、Huffman编码、拓扑排序、关键路径和最短路径问题。
3.数据结构的应用:查找和内部排序。熟练掌握静态查找表的查找方法和实现,了解哈希表的构造和查找方法。掌握各种内部排序方法的基本思想、算法特点、排序过程以及它们的时间复杂度分析。
《数据结构》教学大纲
课程名称:数据结构
课程编号:014100028 适用专业:计算机、信息管理
总学时数:60 学分数: 4
一、课程的性质、目的与任务
数据结构是计算机科学技术、信息管理等专业的核心课程之一,是一门理论与工程实践密切相关的综合性课程,在计算机学科教学中具有十分重要的作用。大力加强数据结构课程的建设,提高数据结构课程的教学质量,有利于教学改革和教育创新,有利于高级应用型人才和创新人才的培养。
《数据结构》课程是计算机专业的专业基础课程,介绍计算机领域的常用数据结构以及各种查找和排序的算法,是计算机专业学生必修的一门技术基础课程,也是计算机专业的核心课程。数据结构是计算机专业的一门重要的专业基础课,主要解决数据的表示和数据的处理,系统介绍三大数据结构及其实现,为操作系统等课程提供必要的知识基础,为计算机人员提供必要的基本技能。
二、课程教学基本要求
本课程介绍常用数据结构之间的逻辑结构、存储结构和对其施加的运算,如:线性表、栈、队列、串、数组、广义表、树、图等。同时还介绍各种查找和排序的算法。
通过本门课程的学习,应使学生掌握以下几个方面的知识:
1:系统学习常用基本数据结构及其在不同存储方式下的实现,掌握分析、选择不同的数据结构和存储结构的原则和方法。
2:学习和掌握在各种存储结构上实现的各种算法及其设计思想,从而学习各种分析问题和解决问题的能力。
3:掌握各种算法的时空效率的分析方法,学会在实际应用中选择合适的算法。
4:掌握各种查找和排序的算法以及效率,并将其应用在程序设计中。
三、课程教学内容体系
第一章:概论
1.1 什么是数据结构
1.2 基本概念和术语
1.3 抽象数据类型的表现与实现
1.4 算法和算法分析
教学要求:理解数据、数据元素、数据项的概念;掌握逻辑结构和存储结构的关系;理解算法的基本概念;学会分析算法的时间复杂性和空间复杂性。
第二章:线性表
2.1 线性表的类型定义
2.2 线性表的顺序表示和实现
2.3 线性表的链式表示和实现(静态查找表不讲)
2.4 一元多项式的表示及相加
教学要求:理解线性表的定义和特点;掌握顺序表和链表的特点,掌握在这两种存储结构上各种基本运算的实现算法以及效率的分析,并学习在这两种存储结构上进行算法设计的方法;以达到利用基本算法进行较复杂算法设计的目的。
第三章:栈、队列
3.1 栈
3.2 栈的应有和举例
3.2.1 数制转换
3.3.4 迷宫求解
3.3 栈与递归的实现
3.4 队列
教学要求:理解栈和队列的定义、特点,学习它们的各种组织方式及算法;掌握它们的空和满的判断条件;并学会它们的简单应用。
第四章:串
4.1 串类型的定义
4.2 串的表示和实现
4.2.1 定长顺序存储表示
4.2.3 串的块链存储表示
4.3 串的模式匹配算法
4.3.1 求字串位置的定位函数
教学要求:了解串的概念,掌握串的基本运算,学习串运算在不同存储结构下的实现过程。
第五章:多维数组和广义表
5.1 数组的定义
5.2 数组的顺序表现和实现
5.3 矩阵的压缩存储
教学要求:领会数组的定义,数组的两种顺序存储结构,并领会几种特殊矩阵和稀疏矩阵的压缩存储方法。
第六章:树
6.1 树的定义和基本术语
6.2 二叉树
6.2.1 二叉树的定义
6.2.2 二叉树的性质
6.2.3 二叉树的存储结构
6.3 遍历二叉树和线索二叉树
6.3.1 遍历二叉树
6.4 树和森林
6.4.1 树的存储结构
6.4.2 森林与二叉树的转换
6.4.3 树和森林的遍历
6.6 赫夫曼树及其应用
6.6.1 最优二叉树(赫夫曼树)
6.6.2 赫夫曼编码
教学要求:理解树型结构的概念和术语,领会二叉树的定义、形态、性质和存储结构,掌握二叉树的各种遍历算法极其实现过程,了解树和森林及其相互转换;掌握哈夫曼树极其应用。
第七章:图
7.1 图的定义和术语
7.2 图的存储结构
7.2.1 数组表示法
7.2.2 邻接表