1 / 21

第三章 树 3.1 树的有关定义

第三章 树 3.1 树的有关定义. 给定一个图 ,如果它不含任何 回路 ,我们就叫它是林,如果 又是连通的,即这个林只有一个连通支,就称它是树。. 树的有关定义. 定义 3.1.1 一个不含任何 回路 的连通图称为树,用 表示。 中的边称为树支,度为 1 的节点称为树叶。 树的每条边,都不会属于任何回路。这样的边叫割边。. 树的有关定义. 定义 3.1.2 设 是 的一条边,若 比 的连通支树连通支数增加,则称 是 的一条割边。

livi
Télécharger la présentation

第三章 树 3.1 树的有关定义

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 树3.1 树的有关定义 • 给定一个图 ,如果它不含任何回路,我们就叫它是林,如果 又是连通的,即这个林只有一个连通支,就称它是树。

  2. 树的有关定义 • 定义3.1.1 一个不含任何回路的连通图称为树,用 表示。 中的边称为树支,度为1的节点称为树叶。 树的每条边,都不会属于任何回路。这样的边叫割边。

  3. 树的有关定义 • 定义3.1.2 设 是 的一条边,若 比 的连通支树连通支数增加,则称 是 的一条割边。 显然,图 删去割边 之后,结点 分属于不同的分支。

  4. 树的有关定义 • 定理3.1.1 是割边,当且仅当 不属于 的任何回路。 证明:若 属于 的某个回路,则 中仍存在 到 的道路,故结点 和 属于同一连通支, 不是割边。反之,若 不是割边,则 与 的连通支数一样。于是 和 仍属于同一连同支,故 中存在道路 就是 的一个回路。

  5. 树的有关定义 • 定理3.1.2 设 是结点数为 的树,则下列性质等价: • 连通且无回路 • 连通且每条都是割边 • 连通且有 条边 • 有 条边且无回路 • 的任意两结点间有唯一道路 • 无回路,但在任两结点间加上一条边后恰有一个回路

  6. 树的有关定义 • 定理3.1.3 树 中一定存在树叶结点。 证明:由于 是连通图,所以任一结点 ,都有 。若无树叶,则 。 这样 矛盾。 • 定义3.1.3 如果 是图 的支撑子图,而且又是一棵树,则称 是 的一棵支撑树,或称生成树,又简称 的树。

  7. 3.6 Huffman树 • 定义3.6.1 除树叶外,其余结点的正度最多为2的外向树称为二叉树。如果它们的正度都是2,称为完全二叉树。

  8. Huffman树 • 定义3.6.1 如果二叉树T的每个树叶结点vi都分别赋以一个正实数wi,则称T是赋权二叉树。从根v0到树叶vi的路径P(v0,vi)所包含的边数计为该路径的长度li,这样二叉树的路径总长是 vi是树叶 如果给定了树叶数目以及它们的权值,可以构造许多不同的赋权二叉树,在这些赋权二叉树中,必定存在路径总长WPL最小的二叉树,这样的树称为最优二叉树。

  9. Huffman树 • 例3.6.1 已知英文字符串adacatedecade。试用二进制字符串代替某个字幕,并保证该英文字符串与二进制串构成一一对应。 解:该字符串中有字母a,d,e,c,t,它们分别出现4,3,3,2,1次。令每个字母对应二叉树的一个树叶,根到树叶的路径是唯一的,而且这条路径决不会是根到另一个树叶路径的一部分。这样跟到树叶的路径与该字母构成一一对应。如果在树T中令向左的边为0,向右的边为1,那么这些路径又与二进制串构成了一一对应。

  10. Huffman树 • 哈夫曼给出了一个计算Huffman树算法: • 对 个权值进行排序,满足 • 计算 作为中间结点 的权, 的左儿子是 ,右儿子是 。在权序列中删去 和 ,加入 。若 ,否则转(1)。

  11. Huffman树 • Huffman树算法的计算复杂度是O(n log n)。

  12. Huffman树 • 定理3.6.1 由Huffman算法得到的二叉树是最优二叉树

  13. 3.7 最短树 • 3.7.1 Kruskal算法 Kruskal算法的描述如下: T←Φ, 当|T| < n – 1且E≠Φ时, begin • e←E中最短边. • E←E-e. • 若T+e无回路,则T←T+e. end 若|T|<n-1打印”非连通”,否则输出最短树

  14. 最短树 • 定理 3.7.1 是赋权连通图 的最短树,当且仅当对任意的余树边 ,回路 满足其边权 证明:必要性,如果存在一条余树边 ,满足 ,则 得到新树 比 更加短,与 是最短树矛盾。

  15. 最短树 • 充分性,若存在比 还短的树 ,则 ,设 则 构成唯一回路 。如果对任意的 关于 的余树边 ,它与回路 里的树支边 都有 ,则 ,与假设矛盾.因此一定存在某边 ,对于某条边 , 满足 。

  16. 最短树 • 定理3.7.2 Kruskal算法的计算复杂性是 ,其中是迭代次数。

  17. 最短树 • 3.7.2 Prim算法 Prim算法的基本思想是:首先任选一结点   构成集合 ,然后不断在 中选一条到 中某点(比如 )最短的边 进入树 ,并且 ,直到 。

  18. 最短树 • Prim算法的描述如下: • While U≠V do begin • For v V-U do end

  19. 最短树 • 定理 3.7.3 设 是赋权连通图 的结点真子集, 是二端点分跨在 和 的最短边,则 中一定存在包含 的最短树干。 证明:设 是 的一棵最短树,若 ,则 构成唯一回路。该回路一定包含 和 其中 , 。由以知条件 ,作 得到的仍是最短树。

  20. 最短树 • 定理 3.7.4 Prim算法的结果是一得到赋权连通图 的一棵最短树。 证明:首先证明它是一棵支撑树。采用归纳法,初始 ,它是由 导出的树,设 是 导出的树,则下一次迭代时, 中增加一新结点 中也加入一条与 相连的边,因 是连通的,则有 条边,它是由 导出的一棵树。因此最终 是 的支撑树。

  21. 最短树 • 以下再证 是一棵最短树 设 是 的一棵最短树, ,由定理3.7.3,对任意的 ,一定有最短树 ,其中 。继续对 如此处理,直到最终 它仍然是最短树。

More Related