1.树与生成树
2.kruskal算法
3.根树:设T是一颗有向树,恰有一个结点的入度为0,其余结点的入度均为1
4.完全二叉树
5.Huffman算法
※树的性质
推论1:任意非平凡的树T=(n,m)中,至少有两片树叶
推论2:阶大于2的树必有割点
割点:对于连通图中的一个点,如果去掉这个点后,原来的图变成非连通图
定义:若连通图G的某个生成子图是一棵树,则称该树为G的生成树(包含原图所有结点)
*树枝:生成树T中的边
*树补边:G中不在T中的边
*树补:G-T(一个边集合)
定理1:任意一个无向连通图G都含有生成树
定理2:设T是无向连通图G的生成树,则
1)G的任何割集与T至少有一公共边
2)G的任何圈与树补至少有一公共边
※最小生成树
生成树的每个树枝所赋权值之和,w(T)
G中具有最小权的生成树——>最小生成树
※克鲁斯克尔算法(从权值最小的开始,权值逐渐增大)
※m叉树
*完全m叉树:每个分支点的出度都等于m
*正则m叉树:全部叶结点位于同一层次
注意:与数据结构中定义不相同,离散数学中,结点的层次为根结点该该结点的距离!!
定理:若完全二叉树有k个分支点,且各分支点的层数之和为i,各树叶的层数之和为L,则:L=i+2×k
※最优二叉树
各叶的道路权值最小的二叉树
※Huffman算法