数据结构期末复习重点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-2012-1数据结构期末复习重点
2011/12/22 注:以第4章-第9章为主,红色表示要求掌握的算法。
Chapter 1 Basic Concepts
1.什么是算法?
2.理解Ω、O、Θ、o的含义。
3.对顺序、条件、单循环、循环嵌套语句进行复杂度分析的一般规则。
4.能够运用大O的复杂度分析的方法,对算法进行复杂度分析,并掌握检验分析结果的方法和测量算法运行时间的方法。
Chapter 3-4 Stacks and Queues, Linked Lists
1.ADT的定义。
2. 单链表表示Lists时的数据结构定义、插入操作和删除操作的实现、时间复杂度分析。
3. List的链表表示中为什么要引入头节点(head node)?
4. 双向循环链表表示Lists时的数据结构定义、插入操作和删除操作的实现、时间复杂度分析
5. 什么叫栈,栈有什么特点?
6. 什么叫队列,队列有什么特点?
7. 循环队列的数据结构定义,循环队列中为什么需要有一个单元空着不用?
8. 循环队列中rear、front 初始值是什么?循环队列判空和判满的条件是什么?
算法:
1. 单链表表示List时的数据结构定义、插入操作和删除操作的实现。
2. 双向循环链表表示List时的数据结构定义、插入操作和删除操作的实现。
3. 循环队列表示队列时的进队列和出队列操作。
Chapter 5 Trees
1.二叉树的基本术语
结点的度、树的深度、双亲结点、孩子结点、兄弟结点、叶子结点、路径、路径长度、结点的深度、结点的高度。
2.树
了解树的树的孩子兄弟表示法和双亲表示法,
(1)能将其与二叉树进行互换;
(2)对于给定的某树,可以画出其孩子兄弟表示法示意图;
(3)对于给定的某树,可以画出其双亲表示法示意图。
3.二叉树:
(1)二叉树的5条性质。
(2)二叉树的存储结构
①数组表示法,对于给定的二叉树,能画出其数组表示示意图,反过来,给定二叉树的数组表示时的存储情况,可以画出该二叉树。
②二叉链表表示法,对于给定的二叉树,能画出其二叉链表表示示意图
③线索化二叉树,对于给定的二叉树,能画出其先序、中序和后序线索化二叉树示意图。(3)二叉树的遍历
①对于给定的二叉树,能给出其先序、中序、后序和层次遍历结果。
②给定某二叉树的中序、先序(或后序)序列能画出该二叉树。
③掌握二叉树的中序非递归算法和层次遍历算法。
④掌握求二叉树叶子结点数、结点数、高度或深度等递归算法。
4. Huffman树
(1)掌握Huffman树的构造方法,了解前缀编码的含义;
(2)能用Huffman树来设计字符的不等长编码。对给定的某英文文本,能利用Huffman树设计其各字符的编码,并能计算总编码长度。
5. 二叉搜索树(BST)
(1)二叉搜索树(BST)的定义,对BST进行中序遍历后可得一有序序列;
(2)掌握二叉搜索树的插入、查找算法;
(3)对给定的整数序列,能构造出BST树,并能删除其上的某个结点。
6. A VL树
(1)对给定的整数序列,能构造出A VL树。
算法:
1. 二叉树的中序非递归算法;
2. 二叉树的层次遍历算法;
3. 二叉树叶子结点数、结点数、高度或深度等递归算法;
4.二叉搜索树的插入、查找算法。
Chapter 6 Graphs
1.图的基本术语:
有向图,无向图,有向完全图,无向完全图,邻接点,子图,路径,路径长度,简单路径,回路,连通,强连通,连通分量,强连通分量,生成树,顶点的度,顶点的度与边数的关系。
2.图的存储结构:
(1)图的邻接矩阵表示;
(2)图的邻接表表示;
(3)图的逆邻接表表示;
能对给定图的逻辑结果画出其相应的存储结构,或根据某图的存储结构画出图的逻辑结构。
3.图的遍历
(1)图的深度优先搜索算法;
(2)图的广度优先搜索算法;
(3)对给定的图,能给出从某个顶点出发的dfs和bfs遍历结果。
4.了解Prim和Kruskal算法思想,了解它们的时间复杂度和适用场合,对给定的某边带权值的无向网,能画出相应的最小生成树,并能计算总代价。
5.对给定的某有向无环图,能给出拓扑排序序列。
算法:
1. 图的深度优先搜索算法;
2. 图的广度优先搜索算法;
3. 求图中某个顶点的邻接点;
4. 求图中某个顶点的度。
Chapter 7 Sorting
1. 掌握直接插入排序的算法思想,了解其适合的场合。
2. 掌握希尔算法思想,能用该排序算法对给定的整数序列进行排序,理解h k-sort。
3. 掌握大顶堆和小顶堆的概念,掌握堆排序算法,能用该排序算法对给定的整数序列进行排序,并能判断某序列是否为堆并调整为堆。
4. 掌握归并排序的算法, 能用该排序算法对给定的整数序列进行排序,能给出各趟结果。
5. 掌握快速排序算法,能用来对实际的例子进行排序。
6. 能对直接插入排序、希尔排序、堆排序、归并排序和快速排序进行基于时间和空间复杂度的比较,了解它们各自的适用场合。
算法:
1. 堆排序算法
2. 快速排序算法
3. 归并排序算法
Chapter 7 hashing
(1)了解哈希表的基本概念:哈希函数、哈希表、冲突,装填因子(loading density)及其意义。
(2)掌握常用的哈希函数构造方法和开放定址法的处理冲突方法,并能构造哈希表。
例如:选取哈希函数H(k)=(3k)MOD11 (可换成其他函数)。用开放定址法处理冲突,f(i,k)= i((7k)MOD10+1)(i=1,2,3,…)(可换成是线性探测和二次探测)。试在0~10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)造哈希表,并求等概率情况下查找成功时的平均查找长度。
(3)能计算查找成功时的平均查找长度。