樹和二叉樹的一些基本術語


【樹的定義】

樹(Tree):n(n≥0)個結點構成的有限集合。當n=0時,稱為“空樹”;對於任一棵“非空樹”(n>0),它具備以下性質:

  • 樹中有一個稱為“根(Root)”的特殊結點,用r表示;
  • 其余結點可分為m(m≥0)個“互不相交”的有限集T1,T2,...Tm,其中每一個集合本身又是一棵樹,稱為原來樹的“子樹(SubTree)”。

特點:

  • 子樹是不相交的;
  • 除了根結點外,每個結點有且僅有一個父節點;
  • 一棵N個結點的樹有N-1條邊。

【一些基本術語】

  • 結點的度(Degree):結點的子樹個數
  • 樹的度:樹的所有結點中最大的度數;
  • 葉結點(Leaf)度為0的結點;
  • 父結點(Parent):有子樹的結點是其子樹的根節點的父結點;
  • 子結點/孩子結點(Child):若A結點是B結點的父結點,則稱B結點是A結點的子結點;
  • 兄弟結點(Sibling):具有同一個父結點的各結點彼此是兄弟結點;
  • 路徑和路徑長度:從結點n1到nk路徑為一個結點序列n1,n2,...,nk。ni是ni+1的父結點。路徑所包含邊的個數路徑的長度
  • 祖先結點(Ancestor):沿樹根到某一結點路徑上的所有結點都是這個結點的祖先結點;
  • 子孫結點(Descendant):某一結點的子樹中的所有結點是這個結點的子孫;
  • 結點的層次(Level):規定根結點在1層,其他任一結點的層數是其父結點的層數加1;
  • 樹的深度(Depth):樹中所有結點中的最大層次是這棵樹的深度

 

【二叉樹(Binary Tree)的定義】

二叉樹T:一個有窮的結點集合。這個集合可以為空;若不為空,則它是由根結點和稱為其左子樹TL右子樹TR的兩個不相交的二叉樹組成。二叉樹的子樹有左右順序之分。

二叉樹的五種基本形態:

 

【特殊的二叉樹】

  • 斜二叉樹(Skewed Binary Tree)

    

  • 滿二叉樹(Full Binary Tree)/ 完美二叉樹(Perfect Binary Tree):除最后一層無任何子結點外,每一層上的所有結點都有兩個子結點的二叉樹。

    

  • 完全二叉樹(Complete Binary Tree):有n個結點的二叉樹,對樹中結點從上至下、從左到右順序進行編號,編號為i(1≤i≤n)結點與滿二叉樹中編號為i結點在二叉樹中的位置相同。

            

     完全二叉樹的順序存儲結構中,按從上至下、從左到右順序存儲n個結點的完全二叉樹的結點父子關系

  1. 根結點的序號為1;
  2. 非根結點(序號i>1)的父結點的序號是:i / 2
  3. 結點(序號為i)的左孩子結點的序號是:2 * i,若2*i > n,則沒有左孩子;
  4. 結點(序號為i)的右孩子結點的序號是:2 * i + 1,若2*i+1 > n,則沒有右孩子;

       

【二叉樹的幾個性質】

  1. 一個二叉樹第i層最大結點數為:2i-1,i≥1;
  2. 深度為k的二叉樹有最大結點總數為:2k-1,k≥1;
  3. 對任何非空二叉樹T,若n0表示葉結點的個數,n2度為2的非葉結點個數,那么兩者滿足關系:n0=n2+1

    假設:葉結點個數為n0;度為1的結點個數為n1;度為2的結點個數為n2

    則二叉樹的總邊數N=2*n2+n1;總結點數N′=n0+n1+n2

    因N+1=N′,所以2*n2+n1+1=n0+n1+n2;得n0=n2+1。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM