数据结构课程复习提纲.docx
《数据结构课程复习提纲.docx》由会员分享,可在线阅读,更多相关《数据结构课程复习提纲.docx(10页珍藏版)》请在冰豆网上搜索。
![数据结构课程复习提纲.docx](https://file1.bdocx.com/fileroot1/2023-6/21/390428d2-2dac-477e-a5d6-9ab32d52f52d/390428d2-2dac-477e-a5d6-9ab32d52f52d1.gif)
数据结构课程复习提纲
《数据结构》课程
复习提纲
一、课程性质与设置目的
【课程性质和特点】
数据结构是计算机科学与技术专业本科阶段中一门专业基础课,在计算机的各个领域中均会使用到该课程的有关知识。
本课程的目的和任务是学生较全面地掌握各种常用的数据结构、相关的算法以及实现,为学习后续专业课程提供必要的支持,提高运用数据结构解决实际问题的能力。
【课程的基本要求】
1、从数据结构的逻辑结构、存储结构和数据的运算三个方面去掌握串、向量、线性表、栈、队列、树、图、散列和文件等常用的数据结构。
2、掌握在各种常用的数据结构上实现的排序和查找运算。
3、对算法的时间和空间复杂性有一定的分析能力。
4、针对简单的应用问题,应能选择合适的数据结构及设计有效的算法解决之。
【相关课程的联系】
本课程的先修课程为离散数学和高级语言程序设计(C++语言),后续课程为操作系统、数据库原理、算法分析与设计等。
数据结构中存储结构及基本运算的实现需要程序设计的基本知识和编程的经验及能力,本课程的大部分实例均是用C++语言实现的,故要求较熟练地掌握C++语言。
【课程修读对象】
本科计算机科学与技术专业,属专业基础课。
【课时安排】
总学时:
64学时讲课:
48学时实验:
16学时
总学分:
4学分讲课:
3学分实验:
1学分
二、课程理论部分内容与考核目标
第1章概论
【课程内容】
1.1基本概念和术语
1.2学习数据结构的意义
1.3算法的描述和分析
【学习目的与要求】
本章的目的是介绍数据结构中常用的基本概念和术语以及学习数据结构的意义,要求了解本章介绍的各种基本概念和术语,掌握算法描述和分析的方法。
本章重点是了解数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系,难点是算法复杂度的分析方法。
【考核知识点与考核要求】
◆理解数据、数据元素、数据项、数据结构等基本概念。
◆理解数据结构的逻辑结构、存储结构及数据运算的含义及其相互关系。
◆了解抽象数据类型描述。
◆掌握算法、算法的时间复杂度和空间复杂度、最坏的和平均的时间复杂度等概念。
◆掌握算法时间复杂度大0表示法。
◆掌握算法描述和算法分析的方法,对于一般算法能分析出时间复杂度。
第2章字符串
【课程内容】
2.1串及其运算
2.2串的存储结构及其实现
2.3简单字符串模式匹配
【学习目的与要求】
本章目的是介绍串的逻辑结构、存储结构及其实现,简单模式匹配,难点是串模式匹配算法。
【考核知识与考核要求】
◆掌握串的有关概念及基本运算。
◆了解模式匹配算法及其时间性能分析。
第3章向量
【课程内容】
2.1模板类
2.2向量的存储结构及其实现
2.3向量遍历器
2.4向量的应用---四个排序算法
【学习目的与要求】
本章目的是介绍一种静态表的数据结构---向量,要求掌握模板类,因为本书中所有的数据结构实现均用到模板类,本章介绍了向量的逻辑结构、存储结构及其实现,向量遍历器,向量的应用---四个排序算法,难点是模板类和四个排序算法。
【考核知识与考核要求】
◆掌握向量的有关概念及基本操作。
◆掌握向量的应用---四个排序算法。
第4章链表
【课程内容】
4.1线性表的概念
4.2动态线性表---单链表的逻辑结构
4.3单链表的实现
4.4单链表应用----插入排序,排序表
4.5其它链表---双端链表、循环链表
【学习目的与要求】
本章目的是介绍链表的逻辑结构,以及定义在逻辑结构上的几种基本运算及其采用单链表上如何实现这些基本运算。
要求在熟悉这些内容的基础上,能够针对具体应用问题的要求和性质,选择用单链表数据结构来设计出相应的有效算法,解决与链表相关的实际问题。
本章重点是熟练掌握单链表上实现的各种基本算法及相关的时间性能分析。
【考核知识与考核要求】
◆掌握单链表上实现的建表、查找、插入和删除等基本算法,并分析其时间复杂度。
◆利用单链表设计算法解决简单的应用问题。
◆掌握单链表的应用---排序链表和插入排序。
◆了解双端链表、循环链表链接方式上的区别。
第5章栈和队列
【课程内容】
5.1栈
5.2队列
5.3栈的应用---表达式求值
【学习目的与要求】
本章目的是介绍栈和队列的逻辑结构定义及在两种存储结构上的基本运算。
要求在掌握栈和队列的特点的基础上,懂得在什么样的情况下能够使用栈或队列。
本章重点是掌握栈的应用---表达式中后缀转换、中缀表达式求值。
【考核知识与考核要求】
◆掌握栈的逻辑结构特点。
◆掌握顺序栈和链栈上实现的进栈、退栈等基本算法。
◆掌握利用栈设计算法解决简单的应用问题---表达式求值。
◆掌握队列的逻辑结构、存储结构及其相关算法。
◆掌握队列的逻辑结构特点,队列与线性表的异同。
◆掌握顺序队列(主要是循环队列)和链队列上实现的入队、出队等基本算法。
◆掌握队列的“上溢”和“下溢”的概念及其判别条件。
◆掌握循环队列中对边界条件的处理方法。
◆了解队列的应用。
第6章树和二叉树
【课程内容】
6.1树及其相关概念
6.2二叉树和森林、树的转换
6.3二叉树的抽象数据类型描述及两种表示(向量和链式表示)
6.4二叉树的遍历
6.5二叉树的遍历器—先序遍历器
6.6二叉排序树的抽象数据类型及相关运算(操作)实现
6.7AVL树
6.8哈夫曼树及其应用
【学习目的与需求】
本章目的是介绍二叉树的定义、性质、存储结构、遍历、遍历器,树的定义、树和森林与二叉树的转换、排序树、AVL树、哈夫曼树及哈夫曼编码等内容。
要求在熟悉这些内容的基础上,重点掌握二叉树的遍历算法及其相关应用、排序树、AVL树,难点是使用本章所学到的有关知识设计出有效算法,解决与树或二叉树相关的应用问题。
【考核知识点与考核要求】
◆了解树的常用术语。
◆掌握二叉树的递归定义。
◆掌握二叉树的性质,了解相应的证明方法。
◆掌握二叉树的两种存储方法、特点及适用范围。
◆掌握二叉树的四种遍历算法,理解其执行过程。
◆了解二叉树先序遍历器。
◆掌握树和森林与二叉树之间的转换方法。
◆掌握二叉排序树的抽象数据类型描述及插入删除的实现。
◆掌握AVL树的插入和删除的过程模拟。
◆掌握哈夫曼算法的思想。
◆掌握哈夫曼编码。
第7章散列结构
【课程内容】
7.1基本概念
7.2散列函数
7.3开地址散列
7.4桶散列
【学习目的与要求】
本章目的是介绍散列表的查找方法以及各种查找方法的时间性能(平均查找长度)比较。
要求在熟悉这些内容的基础上,重点散列函数以及解决冲突的两种方法。
【考核知识点与考核要求】
◆掌握散列函数----除余法。
◆掌握开地址散列的算法模拟--线性探测法。
◆掌握桶散列的算法模拟。
第8章优先队列
【课程内容 】
8.1优先队列的基本概念
8.2堆的数据结构
8.3堆排序
【学习目的与要求】
本章目的是介绍优先队列,最小堆结构、推排序。
要求在熟悉这些内容的基础上,重点掌握堆排序的基本思想及排序过程,本章难点是堆排序的算法实现。
【考核知识点与考核要求】
◆了解优先队列的概念。
◆掌握堆结构及插入和删除算法实现。
◆掌握用堆结构来实现排序的基本思想和算法实现,以及平均情况下的时间性能分析。
◆与前面的四个算法进行比较,比较时间性能分析,稳定性分析。
第9章图
【课程内容】
9.1图的概念
9.2图的两种存储结构表示
9.3图的两种遍历
9.4图的可达性问题---Warshall算法
9.5生成树和两种最小生成树算法
9.6最短路径
9.7拓扑排序
【学习目的与要求】
本章目的是介绍图的基本概念、两种常用的存储结构表示、两种遍历算法以及图的应用算法,要求考生在熟悉这些内容的基础上,重点掌握在图的两种存储结构上实现的遍历算法、理解可达问题、最短路径、最小生成树、拓扑排序的算法模拟。
本章难点是图的应用算法:
求最小生成树的两种算法模拟,结点可达的算法模拟,求最短路径以及拓扑排序的算法模拟,只要求考生掌握这些算法的基本思想及时间性能。
【考核知识与考核要求】
◆了解图的常用术语及含义。
◆掌握邻接矩阵和邻接表这两种存储结构的特点及适用范围。
◆掌握 连通图及非连通图的深度优先搜索和广度优先搜索两种遍历算法。
◆了解图的两种遍历与树的遍历之间的关系。
◆能够利用图的两种遍历设计算法解决简单的应用问题。
◆掌握 Warshall算法的基本思想。
◆掌握 最小生成树的两个算法---Prim和Kruskal算法的基本思想。
◆掌握单源最短路径的Dijkstra算法的基本思想。
◆掌握多源最短路径Floyd--Warshall算法的基本思想。
◆掌握拓扑排序的基本思想和步骤。
第10章排序
【课程内容 】
7.1基本概念
7.2插入排序
7.3交换排序
7.4选择排序
7.5归并排序
7.6分配排序
7.7各种排序方法的比较和选择
【学习目的与要求】
本章目的是介绍五类内部排序方法的基本思想、排序过程、算法实现、时间和空间性能的分析以及各种排序方法的比较和选择。
要求在熟悉这些内容的基础上,重点掌握快速排序、堆排序、归并排序和基数排序的基本思想及排序过程,本章难点是这四个排序算法的实现。
【考核知识点与考核要求】
◆了解排序在数据处理中的重要性以及排序方法的“稳定”性含义。
◆掌握排序方法的分类及算法好坏的评判标准。
◆掌握直接插入排序的基本思想和算法实现,以及在最好、最坏和平均情况下的时间性能分析。
◆掌握冒泡排序的基本思想。
◆掌握快速排序的基本思想和算法实现,以及在最坏和平均情况下的时间性能分析,了解算法的稳定性,并能够根据给定的输入实例,能写出快速排序的排序过程。
◆了解堆、小根堆、大根堆、堆项等有关概念和定义。
◆掌握堆性质及堆与完全二叉树的关系,并能够针对给定的输入实例,写出堆排序的排序过程。
◆掌握归并排序的基本思想和算法实现,以及时间性能分析,并能够针对给定的输入实例,能写出归并排序的排序过程。
◆掌握基数排序的基本思想和算法实现,以及时间性能分析。
并能够对给定的输入实例,能写出基数排序的排序过程。
◆掌握各种排序方法的比较和选择并能够对被排序的记录数目、记录信息量的大小、关键字的结构及初始状态、稳定性要求、辅助空间的大小、各种时间性能等方面的比较掌握各种排序的优缺点。
第11章文件
【课程内容】
10.1文件的基本概念
10.2归并排序
10.3分配排序(基数排序)
【学习目的与要求】
本章目的是介绍存储在外存上的数据结构(即文件)的有关概念、各种文件的特点、组织方法及查询和更新操作,要求对这些内容做一般性的了解。
重点掌握两种排序,并与前面的排序算法进行比较。
【考核知识点与考核要求】
◆了解文件的有关概念、逻辑结构及其操作。
◆掌握归并排序的基本思想和算法实现,以及时间性能分析,并能够针对给定的输入实例,能写出归并排序的排序过程。
◆掌握基数排序的基本思想和算法实现,以及时间性能分析。
并能够对给定的输入实例,能写出基数排序的排序过程。
◆掌握各种排序方法的比较和选择并能够对被排序的数量、信息量的大小、关键字的结构及初始状态、稳定性要求、辅助空间的大小、各种时间性能等方面的比较掌握各种排序的优缺点。