无向树
-
连通而没有回路的无向图称为无向树,常用T表示。
-
每个连通分支都是树的无向图称为森林,一棵单独的树也可以叫做森林。
-
树的性质:
设无向图G=<V,E>,|V|=n, |E|=m
- G中连通而不含回路,且m = n-1;
- 在任二结点之间增加一条新边,就得到唯一的一条基本回路。
- 删除任一 一条边后便不连通。n>=2
- 每一对结点之间有唯一一条基本通路。n>=2 -
树的特点:
- 树是边数最多的无回路图
- 树是边数最少的连通图。
- 若m<n-1 , 则G是不连通的; 若m>n-1 ,则G必含回路。 -
给定图G=<V,E>,若G的某个生成子图是树,则称为G的生成树,记为TG,生成树TG中的边称为树枝;G中不在TG中的边称为弦,TG的所有弦的集合称为生成树的补。
-
生成树存在的条件:一个图G=<V,E>存在生成树TG=<VT,ET>的充分必要条件是G连通的。
-
求生成树的算法:
- 破圈法:循环找到图中的回路并删除回路中的一条边,直到删除m-n+1 条边。
- 避圈法:循环选取G中一条与已选取的边不构成回路的边,直到选取的边的总数为n-1 -
设G=<V,E>是连通的赋权图,T是G的一棵生成树,T的每个树枝所赋权值之和称为T的权,记为w(T)。G中具有最小权的生成树称为G的最小生成树。(不是惟一的)
-
kruskal算法:把所有边作为一个集合,依次选取权值最小的边(边的两个端点都未被访问),选取后的边踢出集合。
-
prim算法:任意选取一个结点v0,构造结点集合Vt = {v0},选取vi(vi∈Vt)结点相邻权值最小的边(vi,vj),vj加入Vt,重复步骤。
有向树 -
一个有向图G去掉所有方向得到的图是一棵树,则G称为有向树。
-
一棵非平凡有向树,如果恰有一个结点的入度为0.其余所有结点的入度均为1,则称之为根树或外向树。入度为1,出度大于0的结点称为内点,内点和根结点称为分支点。
-
如果在根树中规定了每一层上的结点的次序,这样的根树称为有序树。
-
若每个分支点至多有k个儿子,则称T为k元树。
-
若每个分支点都恰有k个儿子,则称T为满k元树。
-
若k元树T是有序的,则称T为k元有序树。
-
若满k元树T是有序的,则称T为满k元有序树。
-
满k元树若叶数为t,分支数为i,则有
(k-1)x i = t -1 -
一棵二元树T,其所有叶结点都赋有权值,则称之为赋权二元树;每个叶结点的权值乘以层数再相加,称为W(T)是该赋权二元树的权;在所有赋权的二元树中,W(T)最小的二元树称为最优树。