【數據結構】數據結構中經常使用的樹

一、樹的定義

首先給出樹的相關定義:樹(tree)是包含n(n>0)個結點的有窮集,其中:node

  • 1)每一個元素稱爲結點(node);
  • 2)有一個特定的結點被稱爲根結點或樹根(root);
  • 3)除根結點以外的其他數據元素被分爲m(m≥0)個互不相交的集合T1,T2,……Tm-1,其中每個集合Ti(1<=i<=m)自己也是一棵樹,被稱做原樹的子樹。

二、樹的相關術語

  • 節點的度:一個節點含有的子樹的個數稱爲該節點的度;
  • 葉節點或終端節點:度爲0的節點稱爲葉節點;
  • 非終端節點或分支節點:度不爲0的節點;
  • 雙親節點或父節點:若一個節點含有子節點,則這個節點稱爲其子節點的父節點;
  • 孩子節點或子節點:一個節點含有的子樹的根節點稱爲該節點的子節點;
  • 兄弟節點:具備相同父節點的節點互稱爲兄弟節點;
  • 樹的度:一棵樹中,最大的節點的度稱爲樹的度;
  • 節點的層次:從根開始定義起,根爲第1層,根的子節點爲第2層,以此類推;
  • 樹的高度或深度:樹中節點的最大層次;
  • 堂兄弟節點:雙親在同一層的節點互爲堂兄弟;
  • 節點的祖先:從根到該節點所經分支上的全部節點;
  • 子孫:以某節點爲根的子樹中任一節點都稱爲該節點的子孫。
  • 森林:由m(m>=0)棵互不相交的樹的集合稱爲森林;

三、二叉樹

二叉樹的定義:算法

  • 二叉樹的每一個結點至多隻有二棵子樹(不存在度大於2的結點),
  • 二叉樹的子樹有左右之分,次序不能顛倒。
  • 二叉樹的第i層至多有2i-1個結點;深度爲k的二叉樹至多有2k-1個結點;
  • 對任何一棵二叉樹T,若是其終端結點數爲n0,度爲2的結點數爲n2,則n0=n2+1。

3.1 要點

遍歷:先序遍歷,中序遍歷,後序遍歷。 非遞歸算法:用棧。 深度遍歷算法:鏈表。數據結構

四、滿二叉樹

一棵深度爲k且有2k-1(2的k次冪減1)個結點的二叉樹稱爲滿二叉樹。指針

五、徹底二叉樹

深度爲k的,有n個結點的二叉樹,當且僅當其每個結點都與深度爲k的滿二叉樹中編號從1至n的結點一一對應時,稱之爲徹底二叉樹。blog

六、二叉排序樹

二叉查找樹定義:又稱爲是二叉排序樹(Binary Sort Tree)或二叉搜索樹。二叉排序樹或者是一棵空樹,或者是具備下列性質的二叉樹:排序

    1. 若它的左子樹不空,則左子樹上全部結點的值均小於它的根結點的值;
    1. 若它的右子樹不空,則右子樹上全部結點的值均大於或等於它的根結點的值;
    1. 它的左、右子樹也分別爲二叉排序樹。

七、平衡二叉樹

平衡二叉樹(Balanced Binary Tree)又被稱爲AVL樹。它或者是一棵空樹,或者是具備下列性質的二叉樹:它的左子樹和右子樹都是平衡二叉樹,且左子樹和右子樹的深度之差的絕對值不超過1。(注:平衡二叉樹應該是一棵二叉排序樹)遞歸

注意點

平衡二叉樹的調整索引

八、B樹

B樹又稱爲B-樹,是一種平衡的多路查找樹。B-樹的階是全部結點的孩子結點樹的最大值。一棵m階B-樹,或爲空樹,或爲知足下列特性的m叉樹:圖片

  • 1)樹中每一個結點至多有m棵子樹;
  • 2)若根節點不是葉子節點,則至少有兩棵子樹;
  • 3)除根以外的全部非終端結點至少有[m/2]()向上取整)棵子樹;
  • 4)全部的非終端結點中包含下列信息數據:(n,A0,K1,A1,K2,A2,…,Kn,An),其中,n爲結點中的關鍵字樹,A爲指向子樹根結點的指針,K爲關鍵字,且Ai-1所指子樹中全部結點的關鍵字均小於Ki,An所指子樹中全部結點的關鍵字均大於Kn;
  • 5)全部的葉子結點都出如今同一層次上,而且不帶信息(能夠看做是外部結點或查找失敗的結點,實際上這些結點不存在,指向這些結點的指針爲空)。下圖爲一棵4階B-樹:

輸入圖片說明

九、B+樹

B+樹是應文件系統所需而出的一種B-樹的變型樹。一棵m階B+樹和m階的B-樹的差別在於:get

  • 1)有n棵子樹的結點中含有n個關鍵字,每一個關鍵字不保存數據,只用來索引,全部數據都保存在葉子節點;
  • 2)全部的葉子結點中包含了所有關鍵字的信息,及指向含這些關鍵字記錄的指針,且葉子結點自己依關鍵字的大小自小而大順序連接;

十、紅黑樹

一棵紅黑樹是知足下面性質的二叉搜索樹:

  • 1)每一個結點或是紅色的,或是黑色的;
  • 2)根結點是黑色的;
  • 3)每一個葉結點(葉結點即指樹尾端NIL指針或NULL結點)是黑的;
  • 4)若是一個結點是紅色的,則它的兩個子結點都是黑色的;
  • 5)對每一個結點,從該結點到其全部後代葉結點的簡單路徑上,均包含相同數目的黑色結點。

十一、鍵樹

十二、字典樹

1三、後綴樹

1四、區間樹與線段樹

1五、敗者樹與勝者樹

連接

數據結構中各類樹

相關文章
相關標籤/搜索