数据结构基础大纲何敏.docx
《数据结构基础大纲何敏.docx》由会员分享,可在线阅读,更多相关《数据结构基础大纲何敏.docx(16页珍藏版)》请在冰豆网上搜索。
数据结构基础大纲何敏
《数据结构基础》课程教学大纲
一、课程基本信息
1、课程名称(中/英文):
数据结构基础/FundamentalsofDataStructure
2、课程性质:
专业基础理论课
3、周学时/学分:
3/2.5
4、授课对象:
通信工程专业、电子信息专业类
5、使用教材:
严蔚敏,吴伟民.《数据结构》(C语言版).清华大学出版社,2005
二、课程简介
本课程是通信工程专业的基础理论课程之一,学分数2.5,周学时3,其中理论课学分1.5,学时为27课时,实验学分为1,学时为28课时。
该课程的主要内容是基本数据结构及其运用,包括线性表、栈和队列、数组和广义表、串、树和二叉树、图、集合等基本数据结构的逻辑结构、存储结构实现及操作,最后还介绍了在数据处理中经常涉及的查找与排序两种专门的操作。
在整个教学活动中,习题与上机实践是完成教学不可缺少的重要环节,需在教学过程中给予必需的重视和实施。
三、教学目的与基本要求
通过本课程的学习,学会分析研究计算机存储和加工的数据的结构特性,在对算法的分析设计中如何选择合适的数据结构和算法,培养学生的数据抽象能力,为完成复杂程序设计建立牢固的基础。
同时通过本课程的学习,可以增强选择合适数据结构和编写高效程序的能力;了解和掌握算法分析的基本方法,为数值计算软件,特别是非数值应用软件的研制打下一个理论及实践基础。
结合通信工程专业的专业需求,讲授中加强对树和图这2种非线性结构的特点及其在工程中的应用的分析和实践。
学习中注重理论与实践的结合,突出和加强实践环节,认真完成上机练习的内容,为了加强学生的实践动手能力,将理论学时与上机实践的学时比例分配为1:
1。
四、主要教学方法
1、采用多媒体教学的方法,对课程中抽象的、较难理解的重点内容进行深入讲述,帮助学生深入理解和掌握本课程的重点和难点;
2、充分利用教材、电子课件、参考书,调动学生的主观能动性,采取课堂讲授和学生自学相结合、讲授和讨论相结合的教学组织形式和方法;
3、选择的例题、习题要有较强的针对性,例题和习题要覆盖课程的主要知识点,通过练习,提高学生掌握基本概念、方法和应用的能力;
4、将课堂教学与实验教学密切结合起来,注重理论与实践与结合,培养学生解决实际问题的综合能力和主动获取知识的能力,以达到教学目的。
五、教学进度表
章次
题目
教学时数
第1章
绪论
1
第2章
线性表
7
第3章
栈和队列
5
第4章
串
3
第5章
数组和广义表
3
第6章
树和二叉树
11
第7章
图
12
第9章
查找
6
第10章
内部排序
6
五、考核方式和成绩评定办法
1、考核方式:
本课程为闭卷考试课程,上机实验通过考察学生编制的程序是否实现了相应功能来进行评判。
2、成绩评定办法:
(1)期末考试占70%。
(2)期中考试占20%。
(3)平时作业和上机实验占10%
六、理论部分
第1章绪论(教学时数1)
本章主要介绍本课程内容涉及的基本概念以及算法的时间、空间复杂度分析的基本方法。
本章的重点和难点是数据结构的基本概念,算法的概念以及评价算法效率的度量。
第一节数据结构的概念
通过具体的问题,讨论什么是数据结构?
第二节基本概念与术语
介绍数据结构中出现的基本术语和概念,使学生基本掌握后续内容中用到的基本概念。
重点介绍以下概念:
一、数据
二、数据结构
三、数据类型和抽象数据类型
四、数据的逻辑结构和存储结构
第三节算法和算法分析
介绍算法的概念,算法的特性,以及算法设计的要求,算法效率的度量。
一、算法的概念和特性
二、算法设计的要求
三、描述算法的方法
四、列举数据结构对算法复杂性的影响,进一步考虑算法分析的基本方法以及算法的时间、空间复杂度。
(本章)复习思考题:
2-4题。
第2章线性表(教学时数7,其中理论课时数3,上机时数4)
本章主要介绍线性表的逻辑结构、顺序和链式存储结构以及链表的使用。
本章的重点和难点是线性表的逻辑结构、顺序和链式存储结构。
第一节线性表
一、线性表的定义
二、线性表基本操作
第二节线性表的顺序存储存储结构
介绍线性表的顺序存储存储结构的实现方法,以及基本顺序表的基本操作的实现。
第三节链式存储结构
一、单链表
二、静态链表
三、循环链表
四、双向链表
(本章)复习思考题:
3-7题,上机实习1次。
第3章栈和队(教学时数5,其中理论课时数2,上机时数3)
本章主要介绍线性表的两种特殊结构:
栈和队的基本概念、存储结构以及他们的操作和应用。
本章的重点和难点是栈和队的存储结构以及他们的操作。
第一节栈
一、栈的定义
二、栈的表示和实现
第二节栈的应用举例
一、数制转换
二、括号匹配的检验
三、栈与递归
第三节队列
一、队列的定义
二、链队列——队列的链式表示和实现
三、循环队列——队列的顺序表示和实现
(本章)复习思考题:
3-7题,上机实习1次。
第4章串(教学时数3,其中理论课时数1,上机时数2)
本章主要介绍串的逻辑结构定义和存储结构以及串的应用。
本章的重点和难点是串的匹配算法。
第一节串的基本概念
一、串定义
二、串的长度,子串,串相等,空格串概念
三、串的最小操作子集
第二节串的表示和实现
一、定长顺序存储表示
二、堆分配存储表示
三、串的块链存储表示
第三节串的模式匹配算法
一、求子串位置的定位函数Index(S,T,pos)
二、模式匹配的一种改进算法探讨
(本章)复习思考题:
2-3题,上机实习1次。
第5章数组与广义表(教学时数3,其中理论课时数1,上机时数2)
本章重点介绍特殊矩阵如三角矩阵、稀疏矩阵的压缩存储结构及算法以及广义表的定义和实现。
本章的重点和难点是矩阵的压缩存储,以及广义表的概念和广义表的存储结构。
第一节数组的基本概念
一、数组的定义
二、数组的基本操作
第二节数组的顺序表示和实现
一、顺序存储结构
二、存储地址的计算
三、基本操作的实现
第三节矩阵的压缩存储
一、特殊矩阵
二、稀疏矩阵的存储
三、稀疏矩阵运算
第四节广义表
一、广义表的概念
二、广义表存储结构
(本章)复习思考题:
3-5题,上机实习1次。
第6章树和二叉树(教学时数11,其中理论课时数6,上机时数5)
本章主要介绍树的结构和定义、二叉树、森林和哈夫曼树。
本章的重点和难点是二叉树的存储结构及遍历,线索二叉树及哈夫曼树的应用。
第一节树的定义和基本术语
一、树的定义
二、基本术语
结点,结点的度,叶子或终端结点,非终端结点或分支结点,树的度,孩子和双亲,兄弟,祖先和子孙,层次,堂兄弟,深度,森林,有序树和无序树。
第二节二叉树
一、二叉树的定义
二、二叉树的性质
三、二叉树的存储结构
讨论二叉树的两种存储结构:
顺序存储和链式存储。
第三节遍历二叉树和线索二叉树
本节是本章的重点,讨论遍历二叉树三种遍历的策略,以及线索二叉树的建立和基于线索二叉树的遍历。
一、遍历二叉树
二、线索二叉树
第四节树和森林
一、树的存储结构
二、森林和二叉树的转换
三、树和森林的遍历
第五节赫夫曼(Huffman)树及其应用
一、最优二叉树(赫夫曼树)
二、赫夫曼编码
(本章)复习思考题:
3-7个,上机实习1次。
第7章图(教学时数12,其中理论课时间数7,上机时数5)
本章主要介绍图的定义和存储结构,图的连通性和最短路径。
本章的重点和难点是图的存储结构与图的遍历,难点是最小生成树、有向无环图及其应用和最短路径问题。
第一节图的定义和术语
一、抽象数据类型图的定义
二、常用术语
第二节图的存储结构
一、数组表示法
二、邻接表
三、十字链表
四、邻接多重表示法
第三节图的遍历
一、深度优先搜索遍历
二、广度优先搜索
讨论采用邻接表表示下的遍历算法。
第四节图的连通性问题
一、无向图的连通分量和生成树
二、最小生成树
第五节有向无环图及其应用
一、拓扑排序
二、关键路径
讨论AOV网和AOE网的应用。
第六节最短路径
一、从某个源点到其余各顶点的最短路径
二、每一对顶点之间的最短路径
讨论迪杰斯特拉(Dijkstra)算法和弗洛伊德(Floyd)算法的应用。
(本章)复习思考题:
3-7题,上机实习1次。
第9章查找(教学时数6,其中理论课时数3,上机时数3)
本章主要介绍查找的基本概念,静态查找和动态查找及哈希表。
本章的重点和难点是查找方法的基本技术。
第一节静态查找表
一、顺序表的查找
二、有序表的查找
三、索引顺序表的查找
第二节动态查找表
一、二叉排序树
二、平衡二叉树
第三节哈希(Hash)表
一、哈希(Hash)表的基本概念
二、哈希函数的构造方法
三、冲突处理方法
四、哈希表的查找及分析
(本章)复习思考题:
3-7题,上机实习1次。
第10章内部排序(教学时数6,其中理论课时数3,上机时数3)
本章主要介绍内部排序的基本概念,排序方法的稳定性。
本章的重点和难点是内排序方法的技术与特点,各种排序方法的比较。
第一节概述
第二节插入排序
一、直接插入排序
二、折半插入排序
三、希尔排序
第三节快速排序
第四节选择排序
一、简单选择排序
二、树形选择排序
三、堆排序
第五节归并排序
一、2-路归并排序
第六节基数排序
多关键字的排序
二、链式基数排序
第七节各种内部排序方法的比较讨论
(本章)复习思考题:
3-7题,上机实习1次。
第11章外排序(自学)
本章主要介绍外部排序的基本概念,以及几种常见的外排序。
本章的重点和难点是外排序方法的基本概念和基本技术。
第一节磁带、磁盘及其存取特性
一、磁带存取特性
二、磁盘存取特性
第二节磁带的平衡归并排序和多步归并排序
一、磁带的平衡归并排序
二、磁带的多步归并排序
第三节最佳归并排序以及缓冲区管理
一、最佳归并排序
二、缓冲区管理
第12章文件(自学)
本章主要介绍文件的基本概念,文件的特点,存储方法以及加快文件存取的技术:
索引。
本章的重点和难点是文件的基本概念和存取方法。
第一节文件的概述
一、文件的基本概念
二、文件组织
第二节顺序文件及其存取
一、顺序文件
二、顺序文件的存取
第三节索引文件
一、索引文件组织
二、索引表
三、索引技术
第四节直接存取文件
第五节多重链表文件和倒排文件
一、多重链表文件
二、倒排文件
七、实验部分
实验项目与内容提要
序
号
实验名称
内容提要
学时
分配
要
求
性
质
类
别
所用主要仪器
所在实验室
1
线性表及其应用
1.帮助学生熟练掌握线性表的基本操作;2.线性表在顺序储存结构和链式存储结构下的算法实现;3.比较分析在两种存储结构下算法实现的时间复杂度和实现难度。
4
必
做
设
计
基
础
计算机
软件实验室
2
栈和队列及其应用
1.深入了解栈和队列的特性;2.巩固对栈和队列的构造方法的理解;3.理解递归算法。
3
必
做
设
计
基
础
计算机
软件实验室
3
串及其应用
1.熟悉串类型的实现方法;2.理解和掌握文本模式匹配的方法;
2
必
做
设
计
基
础
计算机
软件实验室
4
数组和广义表
1.理解数组的存储表示和实现技术;2.掌握稀疏矩阵的表示方法及运算实现;3.熟悉广义表的存储结构特性。
2
必
做
设
计
基
础
计算机
软件实验室
5
树的应用
1.进一步理解数据结构加操作的程序设计观点;2.掌握遍历操作的算法设计;3.掌握非线性结构树的常用存储结构及相关算法实现。
5
必
做
设
计
基
础
计算机
软件实验室
6
图及其应用
1.进一步理解数据结构加操作的程序设计观点;2.掌握遍历操作的算法设计;3.掌握非线性结构图的常用存储结构及相关算法实现。
5
必
做
设
计
基
础
计算机
软件实验室
7
查找
1.掌握常用的查找算法;2.理解散列技术及哈希函数的挑选与冲突解决方法的选用。
3
必
做
设
计
基
础
计算机
软件实验室
8
排序
1.掌握常用的排序算法;
2.加深对各种内部排序方法及效率的理解。
3
必
做
设
计
基
础
计算机
软件实验室
八、参考文献
1、严蔚敏等,数据结构习题集,清华大学出版社(C语言版)(实验书)
2、WilliamFord,WilliamTopp,DataStructureinC++,PrenticeHall,1998.
3、殷人昆等,数据结构(用面向对象方法与C++描述),清华大学出版社,1999.
4、王晓东,算法设计与分析,清华大学出版社,2003.1.
5、迟乐军等,数据结构教程,北京航空航天大学出版社,2003.4.
6、李春葆,李三铁,数据结构考点精要与解题指导,人民邮电出版社,2002.2
执笔人:
何敏
最终修订日期:
2010-1-20