1. 程式人生 > 實用技巧 >依賴注入框架Autofac的簡單使用

依賴注入框架Autofac的簡單使用

二叉樹

一、樹簡介

  1. 樹是一種藉助於複雜節點結構完成的一種資料結構。
    樹(Tree)是n(n>=0)個結點的有限集。n=0時稱為空樹。在任意一顆非空樹中:

    • 有且僅有一個特定的稱為根(Root)的結點;
    • 當n>1時,其餘結點可分為m(m>0)個互不相交的有限集\(T_1\)\(T_2\)、......、\(T_n\),其中每一個集合本身又是一棵樹,並且稱為根的子樹。
    • 此外,樹的定義還需要強調:
      • n>0時根結點是唯一的,不可能存在多個根結點,資料結構中的樹只能有一個根結點。
      • m>0時,子樹的個數沒有限制,但它們一定是互不相交的。
    • 節點的度
      度就是說明本節點 具有的孩子節點的數目
      ,類似於圖演算法當中的出度和入度(degree).
    • 節點關係
      父親節點,孩子節點。
    • 樹深度
      先說明的概念,從root開始為第一層,依次類推得到深度。
      深度為\(k\)的滿二叉樹,具有\(2^{k+1}-1\)個節點,也就是一個簡單的等比數列求和,不難理解。

二、二叉樹

  1. 二叉樹是n(n>=0)個結點的有限集合,該集合或者為空集(稱為空二叉樹),或者由一個根結點和兩棵互不相交的、分別稱為根結點的左子樹和右子樹組成。

  2. 性質

    1. 在二叉樹的第i層上最多有2i-1 個節點 。(i>=1)

    2. 二叉樹中如果深度為k,那麼最多有\(2^k-1\)個節點。(k>=1)

    3. \(n_0=n_2+1\)

      , \(n_0\)表示度數為0的節點數,\(n_2\)表示度數為2的節點數。

    4. 在完全二叉樹中,具有n個節點的完全二叉樹的深度為\(\lfloor {log_2n} \rfloor\)+1。

    5. 若對含 n 個結點的完全二叉樹從上到下且從左至右進行 1 至 n 的編號,則對完全二叉樹中任意一個編號為$ i$ 的結點有如下特性:

      (1) 若 i=1,則該結點是二叉樹的根,無雙親, 否則,編號為 \(\lfloor\frac{i}{2} \rfloor\)的結點為其雙親結點;
      (2) 若 \({2i}\gt{n}\),則該結點無左孩子, 否則,編號為 2i 的結點為其左孩子結點;
      (3) 若\({2i+1}\gt{n}\)

      ,則該結點無右孩子結點, 否則,編號為2i+1 的結點為其右孩子結點。
      (目前還沒寫完)