📜  握手引理和有趣的树属性

📅  最后修改于: 2022-05-13 01:57:19.691000             🧑  作者: Mango

握手引理和有趣的树属性

什么是握手引理?
握手引理是关于无向图的。在每个有限无向图中,偶数个顶点的度数总是奇数。握手引理是度数和公式的结果(有时也称为握手引理)
\sum_{u \epsilon v} deg(v) = 2\left | E \right |

握手引理在树数据结构中有何用处?
以下是可以使用握手引理证明的一些有趣事实。

1) 在每个节点有 0 或 k 个子节点的 k-ary 树中,以下属性始终为真。

L = (k - 1)*I + 1
Where L = Number of leaf nodes
      I = Number of internal nodes  

证明:
证明可以分为两种情况。

情况1 (Root is Leaf):树中只有一个节点。上面的公式对于单个节点是正确的,因为 L = 1,I = 0。

情况 2 (根是内部节点):对于超过 1 个节点的树,根始终是内部节点。对于这种情况,可以使用握手引理证明上述公式。树是无向无环图。

树的总边数是节点数减1,即|E| = L + I – 1。

在给定类型的树中,除根以外的所有内部节点的度数为 k + 1。根的度数为 k。所有叶子的度数都是 1。将握手引理应用于这些树,我们得到以下关系。

Sum of all degrees  = 2 * (Sum of Edges)

  Sum of degrees of leaves + 
  Sum of degrees for Internal Node except root + 
  Root's degree = 2 * (No. of nodes - 1)

  Putting values of above terms,   
  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   

所以上面的性质是用握手引理证明的,让我们讨论一个更有趣的性质。

替代证明:(不使用握手定理)
由于有 I 个内部节点,每个节点都有 K 个子节点,因此树中的子节点总数 = K * I。

有 I-1 个内部节点是某个其他节点的子节点(根已被排除,因此比内部节点的总数少一个)

也就是说,在这些 K*I 子节点中,I-1 是内部节点,因此其余 (K*I – (I-1)) 是叶节点。

因此 L = (K-1)*I + 1。 2)在二叉树中,叶子节点的数量总是比有两个孩子的节点多一。

L = T + 1
Where L = Number of leaf nodes
      T = Number of internal nodes with two children 

证明:
令有2个孩子的节点数为T。证明可分为三种情况。


案例1:只有一个节点,关系成立
当 T = 0,L = 1。


情况2:根有两个孩子,即根的度数为2。

Sum of degrees of nodes with two children except root + 
   Sum of degrees of nodes with one child + 
   Sum of degrees of leaves + Root's degree = 2 * (No. of Nodes - 1)   

   Putting values of above terms,
   (T-1)*3 + S*2 + L + 2 = (S + T + L - 1)*2

   Cancelling 2S from both sides.
     (T-1)*3 + L + 2 = (T + L - 1)*2
     T - 1 = L - 2
     T = L - 1 


案例3:根有一个孩子,即根的度数为1。

Sum of degrees of nodes with two children + 
   Sum of degrees of nodes with one child except root + 
   Sum of degrees of leaves + Root's degree = 2 * (No. of Nodes - 1)   

   Putting values of above terms,
   T*3 + (S-1)*2 + L + 1 = (S + T + L - 1)*2

   Cancelling 2S from both sides.
     3*T + L -1 = 2*T + 2*L - 2
     T - 1 = L - 2
     T = L - 1 

因此,在所有三种情况下,我们得到 T = L-1。

我们已经讨论了使用握手引理证明树的两个重要属性。关于这些属性已经提出了许多 GATE 问题,以下是一些链接。

GATE-CS-2015(第 3 套)|问题 35
GATE-CS-2015(第 2 套)|问题 20
门-CS-2005 |问题 36
门-CS-2002 |问题 34
门-CS-2007 |问题 43