理解和掌握.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图的遍历 图的深度优先搜索DFS。 图的广度优先搜索BFS。 图的DFS生成树的高度通常比其BFS 生成树的高度要高。 非连通图或非强连通图遍历后得到的 通常是一个生成森林。
深度优先搜索DFS ( Depth First Search )

深度优先搜索的示例
1
A
2
B
3
E G 4 I

理解和掌握


递归与递归算法 递归算法的编制

需要掌握的知识点
递归与递归算法 递归的定义可用递归过程解决。 递归数据结构(链表、树等)可用 递归算法求解。 递归算法包含两部分:基本项和归 纳项。 递归与递推的关系。 单向递归与尾递归。
递归算法的编制
二叉树前序遍历的算法。
栈与队列的结构与特点
循环队列的结构与特点

需要掌握的知识点
栈和队列的结构与特点 栈与队列都是限制存取点的线性表。 栈与队列都只能顺序存取。 栈是先进后出, 队列是先进先出。 顺序存储表示有“满”的问题。 链表存储表示可以扩充,不存在 “满”的问题。 它们都有“空”的情形。

例:12,8,2,6,4
12
8 2 6 4 12 8 6 2 32 12 8 12* 12 20 12 8 6 4 2 20 12* 6* 4 6* 4
6
2
6*
8 4
6
12* 6*
2
堆 堆的定义:顺序存储的关键码集合。 堆的插入与删除。 形成堆时用到的向下调整算法。 堆插入时用到的向上调整算法。 堆的插入与删除算法。
二叉树后序遍历的算法。
二叉树中序遍历的算法。 二叉树中交换根结点的左、右子树
的算法。 完全二叉树用前序遍历实现顺序存 储表示与二叉链表表示相互转换的 算法。
第六章 树与森林

理解和掌握

二叉树的定义与性质




二叉树的三种遍历 树的存储表示 霍夫曼树与霍夫曼编码 堆

需要掌握的知识点
0 -1
0
-2
0
1
0
16
16
3
2
16 左右双旋 1 0 3 3
0
7
7
3
2
-1
16
0
16
7
1 -2
11
1
7 3
0
7
7
0
16 右单旋 -1 11
3
0
11
3
0
11
9
1
9
16
16
0
9
26
左单旋
0
11
7
0 1
11
7
1 2 右左双旋 -1
16
16
3
9
0
26
3
9
1
0
26
18 11 7
0
0
11 7
0
-1
18 9 16 26 3
18
-1
3
9
0
16
26
14
2
1 左右双旋 -2
11
11
-1
7
3
-2
18
26 3
7
0
18百度文库
9 15
0 0
9 16
1 14
0
26
14
15
16
从空树开始的建树过程
第八章 图

理解和掌握

图的基本概念 图的存储表示 图的遍历 最小生成树 拓扑排序

需要掌握的知识点
图的基本概念 顶点的度、完全图、生成树。 无向图顶点度的和等于边数的2倍。 有向图顶点的度等于入度+出度。 无向连通图最大边数n(n-1)/2, 最少 边数n-1(生成树)。 有向强连通图最大边数n(n-1), 最少 边数n, (特例, n=1时最少边数0) 。
第一章 概论

理解和掌握

数据和数据结构的基本概念
数据的逻辑结构和物理结构
算法的定义和质量要求

算法的渐进时间复杂度分析

需要掌握的知识点
数据与数据结构的基本概念 数据元素是数据处理的基本单位,数 据项是数据处理的最小单位。 数据结构是数据对象中元素之间的关 系的表示。 数据类型是数据结构的使用方式。 基本数据类型是计算机中已经实现了 的数据结构。

a00 a10 a 20 an10
0 1 2
a01 a11 a21 an11
3 4
a02 a12 a22 an12
5

6 7
a0 n1 a1n1 a2 n1 an1n1
8
……
下 三 角 矩 阵
n(n+1)/2-1
二叉树的三种遍历 二叉树的前序遍历方法。 二叉树的中序遍历方法。 二叉树的后序遍历方法。 二叉树的前序序列与中序序列唯一 确定二叉树的方法。 二叉树的后序序列与中序序列唯一 确定二叉树的方法。 二叉树的后序序列与前序序列只能 确定一个结点的二叉树。
树的存储表示
树的左子女/右兄弟表示(图示)。 树的左子女/右兄弟表示中根没有右 兄弟。 森林的左子女/右兄弟表示中有n个非 叶结点, 右指针为空的结点有n+1 个。 k叉树各层最大结点个数、高度为h 时的最大结点个数(kh+1-1)/(k-1)。
第二章 数组

理解和掌握

一维数组和二维数组的概念


数组和顺序表的异同 特殊矩阵的压缩存储

需要掌握的知识点
一维数组和二维数组的概念 一维数组是相同类型元素的集合 二维数组是数组元素为一维数组的 一维数组 二维数组不是线性结构,有最多二 个直接前驱和二个直接后继。 一维有序数组插入新元素的算法 一维数组各元素逆置的算法
循环队列的结构与特点 其存储表示是顺序的环形结构。 队头指针指示实际队头的前一位置。 队尾指针指示实际队尾位置。 判断循环队列队空与队满的算法。 循环队列:将一个新元素进队的算法。 循环队列:从队列退出元素的算法。 循环链表表示队列时的进队列和出队 列的算法。
第五章 递归与广义表
第三章 链接表

理解和掌握

单链表的基本概念 循环链表 双向链表

需要掌握的知识点
单链表的基本概念 单链表是线性表的链接存储表示。 不能随机访问, 只能顺序访问。 存储空间可以不断扩充。 元素的物理顺序与逻辑顺序可不同。 链表的插入与删除仅改变指针值。 有序单链表插入与删除算法。 有序单链表建立算法及性能分析。
数组与顺序表的异同 顺序表是线性表的顺序存储表示。 其逻辑顺序与物理顺序一致。 一维数组中非零元素可以不连续存 放, 顺序表中非零元素必须连续存放。 数组与顺序表可以随机存取和顺序 存取。 顺序表的存储可以借助一维数组。
特殊矩阵的压缩存储
对称矩阵的下三角压缩存储时的地址 转换公式。 一维、二维数组元素地址的计算。 按行存储计算 按列存储计算 求一般矩阵各行元素之和的算法 求一般矩阵转置的算法
B a00 a10 a11 a20 a21 a22 a30 a31 a32
an-1n-1
若 i j, 数组元素A[i][j]在数组B中的存放位 置为 1 + 2 + + i + j = (i + 1)* i / 2 + j 若 i < j,A[i][j] = A[j][i] = j *(j +1) / 2 + i
数据的逻辑结构和物理结构 逻辑结构分为线性结构和非线性结构。 非线性结构又分为集合结构、层次结 构和图结构。 物理结构分为顺序结构、链接结构、 索引结构和散列结构。 逻辑结构与数据内容、物理安排、元 素个数无关。 区分线性或非线性结构的依据在于直 接前驱和直接后继的数目。
算法复杂度分析 大O表示法:时间渐进复杂度。 并列程序段中各段时间复杂度的迭加 规则。 嵌套程序段中各段时间复杂度的相乘 规则。
图的存储表示 邻接矩阵是图的顺序存储, 适用于稠 密图,e条边时有e~2e个非零元素。 邻接表是图的链接存储, 适用于稀疏 图,e条边时有e~2e个边链结点。 邻接矩阵的矩阵元素个数与顶点数n 有关, 与边数无关; 其非零元素个数与 边数e有关。 无向图的邻接矩阵是对称的; 有向图 的邻接矩阵不一定是对称的。
8 9 广度优先生成树
最小生成树 Kruskal算法构造生成树的方法 (Vi, Vj, Cost) ( ) 0 1 ( 0 , 5 , 10 ) (05) 10 14 16 (2 , 3 , 12 ) (05)(23) 5 6 2 (1 , 6 , 14 ) (05)(23)(16) 18 24 25 12 (1 , 2 , 16 ) (05)(1236) 4 22 3 (3 , 6 , 18 ) 舍去 (3 , 4 , 22 ) (05)(12346) (4 , 6 , 24 ) 舍去 (5 , 4 , 25 ) (123456)


树的先根、后根遍历过程与算法。
T1
A
T2
F
T3 I
H
J B
A
B C D G
E
T1 A B C T2 F G K
K
T3 H I J
C
D E G I K J F H
3 棵树的森林
D
E
森林的二叉树表示
各棵树的二叉树表示
霍夫曼树与霍夫曼编码
霍夫曼树的构造方法。 霍夫曼编码的构造方法。 霍夫曼树带权路径长度(霍夫曼编 码长度)的计算。 构造霍夫曼树时权大的离根最近,权 小的离根最远。 根的权值相同时,新构造出来的树的 根一般位于右边。但若用“堆”存储 各树的根结点,则要看它们在堆中调 整的结果来定哪一个做左子树。
循环链表 链表最后一个结点的链接指针指示 表头结点。只要知道任一结点地址 就能遍历其他所有结点。 若操作仅在链表两头, 可仅给出链尾 指针, 它的下一结点即链头 。 对于需要循环操作的线性表, 可用循环 链表存储,例如链式队列的实现。 循环单链表的插入与删除算法。
双向链表
28
当各边权值不同时, 构造的最小生成树 是唯一的; 当各边权值有相同的, 构造的最小生成 树可能不唯一。
AVL树 AVL树的搜索过程及性能分析与二 叉搜索树相同。 AVL树的插入过程: 从根开始寻找插入位置。 新结点作为叶结点插入。 从插入位置向上回溯找发生不平 衡结点,确定参加旋转结点。 旋转类型:左单旋、右单旋、先 左后右双旋、先右后左双旋。
例,输入关键码序列为 { 16, 3, 7, 11, 9, 26, 18, 14, 15 },插入和调整过程如下。
二叉树的定义与性质 二叉树的定义是递归的。 i 二叉树各层最大结点数2 ( i = 0,1,… 二叉树高度为h时的最大结点数n = 2h+1 -1。 完全二叉树有n个结点时的高度h : log2(n+1) -1 。 完全二叉树结点i的双亲 (i-1)/2、 左子女 2i+1、右子女 2i+2。
第七章 集合与搜索

理解和掌握

顺序搜索 折半搜索 二叉搜索树 AVL树

需要掌握的知识点
顺序搜索 顺序搜索的过程 顺序搜索的平均搜索长度ASL 搜索成功时无序表与有序表的ASL ASL = (n+1)/2 搜索不成功时无序表的ASL = n+1 搜索不成功时有序表的ASL
n 1 ASL n i n 1 i 1
有序表的折半搜索 折半搜索的过程 折半搜索的平均搜索长度 搜索成功时的平均搜索长度ASL 1 n 1 n ASL Ci log2i 1 n i 1 n i 1 元素的最大比较次数为 log2(n+1) 在区间[low, high]中取中点 (low + high) / 2
1
A
2
B
C 5 H
3
E
G 4 I
7 D
6 F
C 5
H
7 D
6 F
前进 深度优先搜索过程
8
9
回退 深度优先生成树
8
9
广度优先搜索BFS ( Breadth First Search )

广度优先搜索的示例
1
A
2
B
5
E G 7 I
1
A
2
B
C 3 H
5
E
G 7 I
4 D
6 F
C 3
H
4 D
6 F
8 9 广度优先搜索过程
二叉搜索树 二叉搜索树的搜索过程及性能分析。 等概率情形下,二叉搜索树的搜索 成功的平均搜索长度计算。 n个结点的不同二叉搜索树个数计算。 平均搜索长度达到最小的二叉搜索 树即为最优二叉搜索树。 最优二叉搜索树中权大的结点离根 近,权小的结点离根远。 二叉搜索树的搜索算法。
有两个链接指针:前驱和后继。 链表中同时存在两个链:一个按前 驱方向,一个按后继方向。 在前驱方向和后继方向遍历, 时间复 杂性都是O(1)。 在双向链表中两个方向的搜索算法。 在双向链表中插入新结点的算法。 在双向链表中删除一个结点的算法。

第四章 栈与队列

理解和掌握

相关文档
最新文档