二叉樹中的一些概念

1、在有N個葉子節點的哈夫曼樹中,其節點總數爲()?
A、不確定 B、2N-1 C、2N+1 D、2N

解析:如果此處的哈夫曼樹是指二叉樹則選擇B

無論哈夫曼樹是幾叉,其特點是一致的(假設爲m叉),即樹中只存在度爲0的結點(即葉結點)和度爲m的結點.不妨設度爲0的結點個數爲x,度爲m的結點個數爲y,則存在一個等式x+y=my+1,即x=(m-1)y+1,x+y是樹的總結點個數.就這道題來說,假設哈夫曼樹是二叉的話,則度爲0的結點個數爲N,度爲2的結點個數爲N-1,則結點總數爲2N-1.

二叉樹的幾個定理性結論:

1、遍歷二叉樹:L、D、R分別表示遍歷左子樹、訪問根結點和遍歷右子樹,     
      則先(根)序遍歷二叉樹的順序是DLR,      
      中(根)序遍歷二叉樹的順序是LDR,     
      後(根)序遍歷二叉樹的順序是LRD,     
      還有按層遍歷二叉樹。這些方法的時間複雜度都是O(n),n爲結點個數。 
 
2、如果T2是由有序樹T轉換而來的二叉樹,那麼T中結點的前序就是T2中結點的前序,T中結點的後序就是T2中結點的中序。
3、任何一棵二叉樹的葉結點在先序、中序和後序遍歷中的相對次序不發改變。 
 
4、設n,m爲一棵二叉樹上的兩個結點,在中序遍歷時,n在m前的條件是n在m的左方。 
 
5、前序序列和中序序列相同的二叉樹爲空樹或任一結點均無左孩子的非空二叉樹;    
      中序序列和後序序列相同的二叉樹爲空樹或任一結點均無右孩子的非空二叉樹;     
      前序序列和後序序列相同的二叉樹爲空樹或僅有一個結點的二叉樹。 
 
6、中序遍歷,每個結點在訪問左子樹和右子樹之間訪問。這在遍歷二叉搜索樹時很常用,因爲它能用遞增的順序來遍歷所有的值。 
 
7、以上的遞歸算法使用與樹的高度成比例的棧空間。     如果我們在每個結點中存儲指向父結點的指針,那樣可以使用迭代算法,只使用常數級空間實現所有這些遍歷。然而,指向父結點的指針佔用更多的空間。這隻在需要指向父節點的指針或棧空間有限時才使用。


8、用二叉樹表示下述表達式:a+b*(c-d)-e/f      先序遍歷的序列是:-+a*b-cd/ef
     中序遍歷的序列是:a+b*c-d-e/f
     後序遍歷的序列是:abcd-*+ef/-
 
 9、深度優先遍歷在深度優先順序中,我們希望從根結點訪問最遠的結點。和圖的深度優先搜索不同的是,不需記住訪問過的每一個結點,因爲樹中不會有環。前序,中序和後序遍歷都是深度優先遍歷的特例。 
 
10、廣度優先遍歷和深度優先遍歷不同,廣度優先遍歷會先訪問離根節點最近的節點。 二叉樹的廣度優先遍歷又稱按層次遍歷。算法藉助隊列實現。


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