• 握手引理和树属性


    原文地址:

    https://www.geeksforgeeks.org/handshaking-lemma-and-interesting-tree-properties/

    什么是握手引理:

    握手引理是关于无向图的。在每个有限无向图中,具有奇数度的顶点数始终是偶数。握手引理是一个关于度数和的推论,有时候也直接被称之为握手引理

    以上公式用大白话说就是:总度数=2(边数)

    握手引理在数据结构中的一些具体应用:

    下面是利用握手引理推理出来的一些事实:

    特性一:

    在一个子树数量为0或者k的k-ary树中,以下属性永远成立:

     L = (k - 1)*I + 1
    L:叶子节点数量
    I:内部节点数量
    可以分为两种情况证明:
    case 1:树中只有一个节点。那么上述公式中的L为1,I为0;公式成立。
    case 2:树中得节点数量大于1.
    总度数 = 2(总边数)
    叶子节点总度数+除根节点以外的内部节点总度数+根节点度数 = 2(总节点数量-1)
    将L和I代入上述表达式
    L+(I-1)*(k+1)+k = 2 * (L + I - 1)
    L + k*I - k + I -1 + k = 2*L + 2I - 2

    L + K*I + I - 1 = 2*L + 2*I - 2
    K*I + 1 - I = L
    (K-1)*I + 1 = L
    得证

    特性二:

    在二叉树中叶子节点的数量总是比有两个孩子的节点数量多1

    用公式表达就是:L = T+1

    L:叶子节点数量   

    T:拥有两个孩子的节点

    此特性基于三种情况进行分析

    1,只有一个节点,那么关系为T = 0, L = 1。

    2,根有两个孩子

    那么根据握手引理:

    除根以外具有两个孩子的节点的度+具有一个孩子的节点的度+叶子节点的度+根节点的度 = 2(节点数量-1)

    L,T代入上述公式

    (T-1)*3 + S*2 + L + 2 = (S + T + L - 1)*2

    (T-1)*3 + L + 2 = (S + L - 1)*2

    T - 1 = L - 2

    T = L - 1

    3,根只有一个孩子

    除根以外具有一个孩子的节点的度+具有两个孩子的节点的度+叶子节点的度+根节点的度 = 2(节点数量-1)

    L,T代入上式

    T*3 + (S-1)*2 + L + 1 = (S + T + L - 1)*2

    3*T + L -1 = 2*T + 2*L - 2

    T - 1 = L - 2

    T = L - 1

    得证

  • 相关阅读:
    JavaScript脚本的两种放置方式
    对象 属性 事件 方法
    媒体查询
    HTML5布局
    图像
    布局
    列表,表格,表单
    盒子
    vue.js常见面试题及常见命令介绍
    Winform读报工具
  • 原文地址:https://www.cnblogs.com/itqczzz/p/10392973.html
Copyright © 2020-2023  润新知