1. 程式人生 > 實用技巧 >提高篇--資料結構專題3

提高篇--資料結構專題3

樹與二叉樹

樹的定義與性質

  - 沒有結點的樹,稱為空樹
  - 樹的層次
  從根結點開始算
  根結點為第一層
  - 結點的子樹棵數稱為結點的度,樹中結點最大的度稱為樹的度
  - 一條邊連線兩個結點,樹中不存在環
  對n個結點的樹,邊數是n-1
  - 葉子結點度為0
  - 樹的深度,根結點深度為1,樹的高度,葉子結點高度為1
  - 多棵樹組合在一起稱為森林

二叉樹的遞迴定義

  二叉樹的遞迴定義
  - 要麼二叉樹沒有根結點,是一顆空樹
  - 要麼二叉樹由根結點,左子樹,右子樹組成,且左子樹和右子樹都是二叉樹


  1. 滿二叉樹
  每一層的結點個數都達到了當層能達到的最大結點數
  2. 完全二叉樹
  除了最下面一層外,其餘層的結點個數都達到了層能達到的最大結點數
  最下面一層只從左到右連續存在若干結點


  層次
  孩子結點,父親結點,兄弟結點,祖先結點,子孫結點
  結點可以稱為自身的祖先&子孫結點

二叉樹的儲存結構與基本操作

二叉樹的儲存結構

二叉樹結點的查詢,修改

二叉樹的插入

二叉樹的建立

二叉樹儲存結構圖示

完全二叉樹的儲存結構

  對一棵完全二叉樹,如果給它的所有結點按從上到下,從左到右的順序編號[從1開始]
  對完全二叉樹中的任何一個結點,設編號為x
  其左孩子的編號一定是2x,而右孩子的編號一定是2x+1