1. 程式人生 > >算法基礎知識之樹、二叉樹

算法基礎知識之樹、二叉樹

image inline cstyle width var mar span mes med

一、樹

技術分享

把它叫做“樹”是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。在計算機科學中,英語:tree)是一種抽象數據類型(ADT)或是實作這種抽象數據類型的數據結構,用來模擬具有樹狀結構性質的數據集合。樹一般分為兩類:

  • 無序樹:樹中任意節點的子節點之間沒有順序關系,這種樹稱為無序樹,也稱為自由樹;
  • 有序樹:樹中任意節點的子節點之間有順序關系,這種樹稱為有序樹;

二、二叉樹

技術分享

在計算機科學中,二叉樹英語:Binary tree)是每個節點最多只有兩個分支(不存在分支度大於2的節點)的樹結構。通常分支被稱作“左子樹”和“右子樹”。二叉樹的分支具有左右次序,不能顛倒。

二叉樹的第i層至多擁有2^{i-1}}個節點數: 2^0 2 ^1 2^2 ........

深度為k的二叉樹至多總共有個節點數: 1 + 2 + 4 + .... + 2^k =

三、滿二叉樹

技術分享

二叉樹滿滿當當的,稱為滿二叉樹

四、完全二叉樹

技術分享

  完全二叉樹                  滿二叉樹

除了最後一層,都長滿了。而且是最後一層的右方存在空缺。叫做完全二叉樹

算法基礎知識之樹、二叉樹