第七章 树(1)

无向树

树就是一种特殊的图。
比如树可以作为家族树模型,从树根开始往下分支为儿孙。类似于家族谱。
在这里插入图片描述
也可以表示单位的组织结构,以总经理为树根,下接管理部门经理,在下接具体的部门或系。构成组织管理链。
在这里插入图片描述
也可以表示目录系统
在这里插入图片描述

甚至可以表示并行系统。同意通路上的节点为串行节点,不同通路上为并行进程。例如P2 P3为并行,P1,P2为串行。
在这里插入图片描述
在计算机领域中应用最多的当然是二叉树,其中二叉搜索树是使用最多的

解决问题:如何对列表中的元素进行存储,以便容易的找到元素的位置?

在这里插入图片描述

添加一个新的元素所需要的比较次数,最多等于从根到树叶的最长通路的长度。

还有书构建前缀码,这个后面再介绍。

定义

在这里插入图片描述
例子
在这里插入图片描述
因为树是特殊的图,所以树满足以下条件:

重要定理

在这里插入图片描述
证明可以使用车轮循坏证明方法,也就是(1)–>(2)–>(3)–>(4)–>(5)–>(6)
因为(2)、(5)不重要,我们只证明剩余的

(1)–>(2)

显然。

(2)–>(3)

在这里插入图片描述

(3)–>(4)

(4)–>(6)

在这里插入图片描述
这里面最重要的莫过于

m = n − 1 m=n-1 m=n1

于是有:
在这里插入图片描述

利用 m = n − 1 m=n-1 m=n1以及握手定理:顶点的度数之和为边数的2倍结合,可以解决大多数求解顶点个数问题。

最小生成树

首先看生成树定义

设G为无向连通图
G的生成树: G的生成子图并且是树
生成树T的树枝: G在T中的边
生成树T的弦: G不在T中的边
生成树T的余树 : 所有弦的集合的导出子图
注意: 不一定连通, 也不一定不含回路

在这里插入图片描述

定理 任何无向连通图都有生成树。
证 用破圈法(破坏回路)。
若图中无圈, 则图本身就是自己的生成树。
否则删去圈上的任一条边, 这不破坏连通性, 重复进行直到无圈为止,
剩下的图是一棵生成树。

图连同附加在边上的权称作带权图, 记作G=<V,E,W>。
设T是G的生成树, T所有边的权的和称作T的权, 记作W(T)。

最小生成树: 带权图权最小的生成树

避圈法 (Kruskal) 算法

避圈法 (Kruskal) ——求最小生成树的算法 设G是n阶无向连通带权图G
(1) 按权从小到大排列边(环除外), 设 W ( e 1 ) ≤ W ( e 2 ) ≤ . . . ≤ W ( e m ) W(e_1) \leq W(e_2)\leq ... \leq W(e_m) W(e1)W(e2)...W(em).
(2) 令$T=\null ,i=1,k=0 $
(3) 若 e i e_i ei与T中的边不构成回路,则令 T ← T ∪ { e i } , k = k + 1 T \leftarrow T\cup\{e_i\}, k=k+1 TT{ei},k=k+1
(4) 若 k < n − 1 k<n-1 k<n1, 则令 i = i + 1 i=i+1 i=i+1, 转(3)

Kruskal算法是将边权值排序,从最小的边开始选,每次选边都要比较是否和已经选择的边构成回路,指导选择边数 m = n − 1 m=n-1 m=n1为止。

如图:红色边构成最小生成树。
在这里插入图片描述

prim算法

在这里插入图片描述
Prim 算法的要点是,从任意结点开始,每次增加一条最小权边构成一棵新树。

参考文献:《离散数学 第五版》耿素云 ,屈婉玲。清华大学出版社
参考视频:中国慕课国家精品课,离散数学 电子科技大学出品

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小邹子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值