二叉鏈表樹中結點個數 與空指針個數 二叉樹的邊數的關係

二叉鏈表樹中結點個數 與空指針個數 二叉樹的邊數的關係

二叉樹的 每個結點可以表示爲 

struct Node

{

int   number;

Node* lchild,*rchild; //含有兩個指針

};

二叉樹的的二叉鏈表存儲結構中每個結點有2個指針。每個結點有0個、1個或者2個空指針對應有2個、1個、0個非空指針。

二叉樹中邊的個數等於非空指針的個數。

假設二叉樹中節點的總個數爲N,

假設二叉樹中邊的個數爲M

假設二叉樹中度爲0的結點的個數爲n0, 

假設二叉樹中度爲1的結點的個數爲n1,

假設二叉樹中度爲2的結點的個數爲n2.

所以有  n0+n1+n2=N  -------------(1)

二叉樹中除了根結點之外,其他的結點都有一條便進入該結點,所以二叉樹中邊的總個數爲M=N-1;-------(2)

又 M=n1+2*n2;-------------------------(3)

所以由 (1)(2)(3)可得  n0=n2+1;--------------------(4)

設空節點的 個數爲 K  ,則K=2*n0+n1-------------------(5)  

結合(1)(4)(5)可以得到  K=N+1.  (空指針的的個數比結點總個數多1)

由(2)可以知道  邊數M=N-1;(二叉樹的邊數爲結點個數減1)

由(4)可以知道度爲0的結點的個數(葉子結點個數)=度爲2的結點個數+1  (n0=n2+1;)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章