軟考中級(軟件設計世)知識點--數據結構基礎之樹和二叉樹

1.樹:樹是n(n>=0)個結點的有限集合。n=0的時候,爲空樹。

2.在任一個非空樹中:

1).有且僅有有一個稱爲根的結點。
2).其餘的結點可分爲m(m>=0)個互不相交的子集T1,T2,T3……Tm,其中每個子集本身又是一顆樹,並稱其爲根結點的子樹。
在這裏插入圖片描述

3.一個結點的子樹的個數記爲該結點的度。

4.樹的度:樹中各結點的度的最大值。

5.葉子結點:也稱爲終端結點,指度爲零的結點。

6.內部結點:度不爲零的結點稱爲分支結點或非終端結點。除根結點之外,分支結點也稱爲內部節點。

7.結點的層次:根爲第一層,根的孩子爲第二層。

8.樹的高度:一棵樹的最大層數。也叫深度。

9.有序(無許)樹:若將書中的結點的各子樹堪稱是從左到右具有次序的,既不能交換,則稱爲有序樹,反之,爲無序樹。

10。森林:是m(m>=0)棵互不相交的樹的集合。

11.樹的遍歷:

在這裏插入圖片描述

  • 前序遍歷 :A B E F I J C D G H
  • 後序遍歷:E I J F B C G H D A
  • 層次遍歷: A B C D E F G H I J
(樹是沒有中序遍歷;二叉樹有中序遍歷)

12.二叉樹:是n(n>=0)個結點的有限集合,它或者是空數(n=0),或者有一個根結點及兩顆互不相交的、分別稱爲左子樹和右子樹的二叉樹所組成。

13.二叉樹與樹的區別:

  1. 二叉樹的結點最大爲2,而樹不限制結點的度。
  2. 二叉樹的結點的子樹要區分左子樹和右子樹

14.二叉樹的性質:

  1. 二叉樹第i層上的結點數目最多爲2^i-1 (i>=1).
  2. 深度爲K的二叉樹至多有2^k-1個結點(k>=1)
  3. 在任意一棵二叉樹中,若終端結點數爲n0,度爲2的結點樹爲n2,則n0=n2+1 具有n個結點的完全二叉樹深度爲	(圖片公式意思是去下線正數)
  4. 對一棵有n個結點的完全二叉樹的結點按層次自左至右經行編號,則對任意一結點i有:
    - 若i=1,則結點i是二叉樹的根,無雙親,
    - 若i>1,則其雙親爲i/2(取下限正數)
    - 若2i>n,則結點i無左孩子,否則其左孩子爲2i.
    - 若2i+1>n,則結點i無右孩子,否則其右孩子爲2i.

二叉樹如下圖:
在這裏插入圖片描述

15.深度爲K的二叉樹有(2^k)-1個結點,則稱爲滿二叉樹

如下圖
在這裏插入圖片描述

16.深度爲K、有n個結點的二叉樹,當且僅當其每一個都與深度爲K的滿二叉樹編號從1至n的結點一一對應,稱之爲完全二叉樹。

如下圖。
在這裏插入圖片描述

17.二叉樹存儲:

  • 順序存儲:完全二叉樹非常適用
  • 鏈式存儲

18.二叉樹的遍歷:

在這裏插入圖片描述

  • 前序遍歷 : 4 2 1 3 5 6
  • 中序遍歷:1 2 3 4 5 6
  • 後序遍歷:1 3 2 6 5 4

19.二叉樹排序樹:

又稱爲二叉樹找樹:或者是一棵空數,或者是具有下列性質的二叉樹:

  1. 若左子樹不爲空,則左子樹上所有的結點的值均小於它的根結點的值;
  2. 若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值。
  3. 左、右子樹也分別爲二叉排序樹。
    如下圖:
    在這裏插入圖片描述

20.平衡二叉樹:

又被稱爲AVL樹。具有一下性質:它是一棵空數或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。
如下:
在這裏插入圖片描述

21.線索樹:

n個結點的二叉鏈表中含有n+1(2n-(n-1)=n+1)個空指針域。利用二叉鏈表中的空指針域,存放指向結點在某種遍歷次序下的前趨和後繼結點的指針(這種附加的指針稱爲‘線索’)

22.最優二叉樹

給定n個權值作爲n的葉子結點,構造一棵二叉樹,若帶權路徑長度最小,稱這樣的二擦函數爲最優二叉樹,也稱爲哈夫曼樹。哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。

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