图论_树的概念

树与树的性质

定义

  1. 连通且无回路无向图称为树
  2. 树中度数为1的称为树叶,度数大于1的称为分枝点或内点
  3. 如果一个无向图的每一个连通分支都是树,称为森林

等价定义

  1. 无回路的连通图
  2. 无回路且c=v-1,其中c是边数,v是点数
  3. 连通且c=v-1
  4. 无回路且增加一条新边,得到一个且仅一个回路
  5. 连通且删去任何一个边后不连通
  6. 每一对节点之间有一条且仅有一条路

以上证明略

这边复习一下连通图的定义:可以到达每一个点的图

树的定理

  1. T是n阶非平凡的无向树,则T至少有两片树叶

    证明:

    1. 假设叶片有x片
    2. 由等价定义2可知c=v-1
    3. 握手定理可知 ∑ d ( v i ) = 2 c = 2 ( v − 1 ) \sum d(v_i)=2c=2(v-1) d(vi)=2c=2(v1)
    4. 因为树叶是度数为1,内点度数大于1,所以 ∑ d ( v i ) ≥ x + 2 ( v − x ) \sum d(v_i) \geq x+ 2(v-x) d(vi)x+2(vx)
    5. 解得: x ≥ 2 x \geq 2 x2

生成树

定义

  1. 连通图G的生成子图T是一个树,就称T为生成子树
  2. G中在生成子树上的边称为树枝,不在生成子树上的边称为
  3. 生成树T的余树:导出子图G[E[G]-E[T]],记作 Y ‾ \overline Y Y

顺便复习一下生成子图和导出子图:

生成子图:若图G的一个子图包含G的所有顶点,称该子图为G的生成子图

导出子图:

​ G的v1导出子图G[v1]

  • 点集为原图G的点集v的子集v1,且不为空

  • 边集为G中两个端点都在v1中所组成的边

  • 特殊的,G[v]=G

    G的E1导出子图G[E1]

  • 边集为原图G的边集E的子集E1,且不为空

  • 点集为与E1中边关联的点

  • 特殊的,若G无孤立点,则G[E]=G

定理

  1. 连通图至少有一颗生成树
  2. 一条回路和任何一颗生成树的至少有一条公共边
  3. 一个边割集和任何生成树至少有一条公共边
    1. 复习一下边(点)割集,去掉边(点)会使得图的连通分支数目减少的边(点)集
    2. 去掉边割集后,连通分支数目增加,其实就是连通图不连通了,所以这条边一定也存在于生成子树中
  4. **基本回路系统 **:设T为G的生成树,e为T的任意一条弦,则T+e中含一个只有一条弦其余边均为T的树枝的圈. 不同的弦对应的圈也不同. 所有弦对应的回路的结合就叫做基本回路系统
  5. 基本割集:设T是连通图G的一棵生成树,e为T的树枝,则G
    中存在只含树枝e,其余边都是弦的割集,且不同的树枝对
    应的割集也不同.所有树枝对应的割集的集合就是基本割集系统

最小生成树

  1. 问题背景:连通图中G的每一个节点表示一个城市,边的权重代表程璐之间道路的长度,如果修路把这些城市连接起来,怎么修路,总路程最短?

  2. 定义:在带权的图GG的所有生成树中,树权最小的那课生成树,称作最小生成树。

最小生成树的Kruskal算法
  1. 选择最小权边c1,边数i赋值为1
  2. 当i=n-1的时候结束循环,否则转3(树的等价定理2)
  3. 对已经选定的c1,c2,c3…ci,选取不同于已选边的最小边 c i + 1 , 使 选 出 来 的 图 无 回 路 c_{i+1},使选出来的图无回路 ci+1使
  4. i ← i + 1 i\leftarrow i+1 ii+1,转2

这样子就能得到一个最小生成树。

根树

定义

  1. 有向树:如果一个有向图,在忽略方向后,是一颗树,则称为有向树
  2. 根树:根树是一颗有向树,如果只有一个节点的入度为0,其他的节点入度都为0,则称这棵树为根树
  3. 入度为0的结点称为,出度为0的结点称为,出度不为0的结点称为分类点或者内点(包括根)
  4. 层次:从根结点到该结点的单向通路的长度。
  5. 在根树中,如果每一个结点的出度小于m,称为m叉树;当m=2的时候,称为二叉树
  6. 如果每一个结点出度恰好都等于m或0,则这课称为完全m叉树。若所有的树叶层次相同,则称为正则m叉树
  7. 根树中,一个结点的通路长度,就是从根到该结点额通路中的边数。分枝点的通路长度称为内部通路长度,树叶的通路长度称为外部通路长度

通常我们只研究二叉树,并将m叉树转为二叉树

性质

  1. 在完全m叉树中,其树叶数为t,分枝点数为i,则有(m-1)i = t-1
  2. 若完全二叉树有n个分支点,且内部通路长度总和为I,外部长度总和为E,则有E=I+2n。(其实简单画一个图,就能理解:E可以分为两部分,一部分就是分枝点的通路长度和I,而另外一部分就是从分枝点到叶的长度,因为是完全二叉树,所以剩下一部分就是2n了,所以也可以推广到完全m叉树中:E=I+mn)

最优树

定义

  1. 带权二叉树,设有一颗二叉树,共有t片树叶,树叶分别带权 w 1 , w 2 , w 3 . . . w i w_1,w_2,w_3...w_i w1,w2,w3...wi,该二叉树称为带权二叉树。且带权为 w i w_i wi的树叶,其通路长度为 L ( w i ) L(w_i) L(wi),把 W ( T ) = ∑ i = 1 i w i L ( w i ) W(T)=\sum^i_{i=1}w_iL(w_i) W(T)=i=1iwiL(wi)称为带权二叉树的
  2. 所有带权 w 1 , w 2 , w 3 . . . w i w_1,w_2,w_3...w_i w1,w2,w3...wi的二叉树中,W(T)最小的称作最优树,(即只要是树叶带有这些权值的二叉树全部拿来比较,权值最小的就称为二叉树)

最优树的定理

  1. 设T为带权 w 1 ≤ w 2 ≤ . . . ≤ w i w_1\leq w_2 \leq...\leq w_i w1w2...wi的最优树,则一定有
    1. 带权为 w 1 , w 2 w_1,w_2 w1,w2(权值最小的两个树叶)的树叶是兄弟节点
    2. 以带权为 w 1 , w 2 w_1,w_2 w1,w2的树叶的通路长度最长
    3. 若将T中带权为 w 1 , w 2 w_1,w_2 w1,w2的树叶的父结点改为带权 w 1 + w 2 w_1+w_2 w1+w2的树叶,得到的新树是带权为 w 1 + w 2 , w 3 . . . w i w_1+w_2,w_3...w_i w1+w2,w3...wi最优树
  2. 最优树一定是完全二叉树,因为如果有一个分枝点只有一片树叶,只要将树叶代替该分枝点,得到的新树一定比原本的树权值更小

构造最优树(Huffman算法)

  1. 找到最小的两个w值,设为w1,w2,然后对t-1个权值w1+w2,w3…wt求最优树(迭代),并且将得到的最优树的结点 V w 1 + w 2 V_{w_1+w_2} Vw1+w2作为 V w 1 和 V w 2 V_{w_1}和V_{w_2} Vw1Vw2的父节点,依次类推,直到迭代到根节点。

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值