二叉樹(binary tree)由結點的有限集合構成
這個有限集合或者為空集(empty),或者為由乙個根節點(root)及兩顆互不相交、分別稱作這個根的左子樹(left bustree)和右子樹(right subtree)的二叉樹組成的集合。
二叉樹可以是空集合,因此根可以有空的左子樹或右子樹,或者左右子樹都為空。
-子結點、父結點、最左子結點
:若∈r,則稱k是k'的父結點(或"父母"),而k'則是k的子結點(或"兒子"、"子女")
-兄弟節點、左兄弟、右兄弟
:若有序對及都∈r,則稱k'和k''互為兄弟結點。
-分支結點、葉子結點
:沒有子樹的節點稱為葉子結點(或樹葉、終端結點)
:非終端結點稱為分支結點
兩個節點的有序對,稱作邊
除結點k0外的任何節點k ∈k,都存在乙個結點序列k0,k1,...,ks,使得k0就是樹根,且ks=k,其中有序對∈r(1<=i<=s)。這樣的結點序列稱為從根到結點k的一條路徑,其路徑長度為s(包含的邊數)。
若有一條由k到達ks的路徑,則稱k是ks的祖先,ks是k的子孫
根為第0層,其他結點的層數等於其父結點的層數加1
層數最大的葉子結點的層數
層數最大的葉子結點的層數加1
如果一棵二叉樹的任何結點,或者是樹葉,或者恰有兩顆非空子樹,則此二叉樹稱為滿二叉樹
最多只有最下面的兩層結點度數可以小於2
最下一層的結點都集中最左邊
所有空子樹,都增加空樹葉
外部路徑長度e和內部內徑長度i的關係滿足:e=i+2n(n是內部結點個數)
在二叉樹中,第i層上最多有2的i次方個結點(i>=0)
深度為k的二叉樹至多有2的(k+1)次方減1個結點(k>=0),其中深度(depth)定義為二叉樹中層數最大的葉子結點的層數。
一棵二叉樹,如果終端結點數為n0,度為2的節點數為n2,則n0=n2+1
滿二叉樹定理:非空滿二叉樹樹葉數目等於其分支結點數加1
滿二叉樹定理推論:乙個非空二叉樹的空子樹數目等於其結點數加1
有n個結點(n>0)的完全二叉樹的高度為log2(n+1),深度為[log2(n+1)]-1
ps:複習考研了,目標是北郵計算機的非全,可能得等學習到專業課的部分才會繼續更新部落格了,加油吧!
《戀上資料結構與演算法》筆記(七) 二叉樹
二 二叉樹 三 leetcode演算法題 跳轉到目錄 跳轉到目錄 跳轉到目錄 跳轉到目錄 跳轉到目錄 節點的高度 從當前節點到最遠葉子節點的路徑上的節點總數。樹的深度 所有節點深度的最大值。樹的高度 所有節點高度的最大值。跳轉到目錄 跳轉到目錄 跳轉到目錄 跳轉到目錄 a 真二叉樹 跳轉到目錄 b ...
資料結構與演算法Java(七) 二叉樹基礎(上)
相關節點關係 a是b的父節點 b是a的子節點 bcd是兄弟節點 e是根節點 沒有子節點的節點叫做葉子節點或葉節點,如ghijkl 節點的高度 從下往上 節點到葉子節點的最長路徑 邊數 節點的深度 從上往下 根節點到這個節點所經歷的邊的個數 節點的層數 節點的深度 1 樹的高度 根節點的高度 1 滿二...
資料結構與演算法學習筆記 順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,順序儲存二叉樹的特點 順序二叉樹通常只考慮完全二叉樹 第n個元素的左子節點為2 n 1 第n個元素的右子節點為2 n 2 第n個元素的父節點為 n 1 2 n 表示二叉樹中的第幾個元素 按 開始編號如圖所...