2024计算机考研:专业课核心考点总结(二)
核心考点五:森林与二叉树之间的转换以及转换过程中结点之间的关系将一棵树转换为二叉树的方法是:
1.树中所有相邻兄弟之间加一条连线。
2.对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。
3.以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。
森林转换为二叉树的方法如下:
1.将森林中的每棵树转换成相应的二叉树。
2.第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。
树和森林都可以转换为二叉树,二者的不同是:树转换成的二叉树,其根结点必然无右孩子,而森林转换后的二叉树,其根结点有右孩子。将一棵二叉树还原为树或森林,具体方法如下:
1.若某结点是其双亲的左孩子,则把该结点的右孩子、右孩子的右孩子、……都与该结点的双亲结点用线连起来。
2.删掉原二叉树中所有双亲结点与右孩子结点的连线。3.整理由1、2两步所得到的树或森林,使之结构层次分明。
核心考点六:对无向连通图特性的理解
无向图的每条边,在顶点计算度的过程中,都要两次参与计算(与边两关联的2个顶点),因此所有顶点的度之和为偶数。
具有n个顶点的无向连通图,其边数大于或等于n-1。在无向连通图中,所有顶点的度数都有可能大于1。
核心考点七:对m阶B树定义的理解
一棵m阶的B树满足下列条件:1.每个结点至多有m棵子树。
2.除根结点外,其它每个分支至少有m/2棵子树。
3.根结点至少有两棵子树(除非B树只有一个结点)。
4.所有叶结点在同一层上。B树的叶结点可以看成一种外部结点,不包含任何信息。
5.有j个孩子的非叶结点恰好有j-1个关键码,关键码按递增次序排列。结点中包含的信息为︰ (p0,k1, p1,k2, p2,… ,kj-1, pj-1)
其中,ki为关键码,且满足ki
核心考点八:带权图的最短路径算法及应用
迪杰斯特拉(Dijkstra)算法求单源最短路径,算法思想:
设S为最短距离已确定的顶点集(看作红点集),V-S是最短距离尚未确定的顶点集(看作蓝点集)。
1.初始化:初始化时,只有源点s 的最短距离是已知的(SD(s)=0),故红点集S={s},蓝点集为空。
2.重复以下工作,按路径长度递增次序产生各顶点最短路径,在当前蓝点集中选择一个最短距离最小的蓝点来扩充红点集,以保证算法按路径长度递增的次序产生各顶点的最短路径。当蓝点集中仅剩下最短距离为的蓝点,或者所有蓝点已扩充到红点集时,s到所有顶点的最短路径就求出来了。
注意:①若从源点到蓝点的路径不存在,则可假设该蓝点的最短路径是一条长度为无穷大的虚拟路径。②从源点s到终点v的最短路径简称为v的最短路径;s到v的最短路径长度简称为v的最短距离,并记为SD(v)。