python 樹

# 樹# 非線性結構,每一個元素能夠有多個前驅和後繼# 樹是n個元素的集合(n>=0)# n=0時,稱爲空樹# 樹只有一個特殊的沒有前驅的元素,叫作根root# 樹中除了根節點外,其餘元素只能有一個前驅,能夠有多個後繼# 遞歸# 樹T是n個元素的集合(n>=0)。n=0時,稱爲空樹# 有且只有一個特殊元素根,剩餘元素均可以劃分爲m個互不相交的集合T一、T2...Tm。而每個集合都是樹,稱爲T的子樹# 樹的概念# 結點:樹中的元素# 結點的度(degree):結點擁有的子樹的數目,記做d(v)# 葉子節點:結點度爲0,稱爲葉子結點leaf# 分支結點:結點度不爲0,稱爲分支結點# 分支:結點之間的關係# 內部結點:除根結點外的分支結點,固然也不包含葉子結點# 度:樹的度是樹內各節點的度的最大值。D結點度最大爲3,樹的度就是3# 子節點(child):結點的子樹的根結點稱爲該節點的孩子# 雙親節點(parent):一個結點是它各個子樹跟結點的雙親# 兄弟結點(sibling):有一樣父節點# 祖先結點:從根節點到節點G所通過的分支上全部的結點,都是結點G的祖先# 子孫節點:結點的全部子樹上的結點都是子孫節點# 結點的層次(level):根結點爲第一層、根的孩子爲第二層,以此類推,記做L(v)# 樹的深度(depth):樹的層次的最大值# 堂兄弟:雙親在同一層的結點# 有序樹:結點的子樹是有順序的,不能交換# 無序樹:結點的子樹是無順序的,能夠交換# 路徑:從葉子結點連接到跟結點(保證前一個是吼一個的父節點)# 路徑長度:路徑上節點數-1,也是分支數# 森林:m(m>=0)棵不相交的樹的集合#   對於節點而言,其子樹的集合就是森林。A結點的2棵子樹的集合就是森林# 樹的特色#   根惟一#   子樹不相交#   除了根之外,每一個元素只能有一個前驅,能夠有多個後繼#   根節點沒有雙親節點(前驅),葉子結點沒有孩子結點(後繼)#   vi是vj的雙親,則L(vi) = L(vj)-1,也就是說雙親比孩子結點的層次小1# 二叉樹***# 每一個結點最多有2棵子樹#   二叉樹不存在度數大於2的結點# 它是有序樹,左子樹、右子樹是順序的,不能交換次序# 即便某個結點只有一顆子樹,也要肯定它是左子樹仍是右子樹# 二叉樹的5中基本形態#   空二叉樹#   只有一個根結點#   根結點只有左子樹#   根結點只有右子樹#   根結點有左子樹和右子樹# 斜樹(是二叉樹)# 左斜樹,全部節點都只有左子樹# 右斜樹,全部結點都只有右子樹# 滿二叉樹***# 一棵二叉樹的全部分支結點都存在左子樹和右子樹,且全部葉子結點只存在在最下面一層# 一樣深度的二叉樹中,滿二叉樹結點最多# k爲深度(1=<k=<n),則結點總數爲2的k次方-1#   一個深度爲4的滿二叉樹,節點數爲2^4-1=15# 徹底二叉樹# 若二叉樹的深度爲k,二叉樹的層數從1到k-1層的結點數都達到了最大個數,在第k層的全部結點都集中在最左邊,這就是徹底二叉樹# 最後一層從左邊開始放*# 徹底二叉樹由滿二叉樹引出# 滿二叉樹必定是徹底二叉樹,但徹底二叉樹不必定是滿二叉樹# k爲深度(1=<k=<n),則結點總數最大值爲2的k次方-1,當達到最大值的時候就是滿二叉樹# 二叉樹的性質# 1 在二叉樹的第i層上,至少有2^(i-1)個結點(i>=1)# 2 深度爲k的二叉樹,至少有2^k-1個結點(k>=1)# 3 對任何一棵二叉樹T,葉子結點數位n0,度數爲1的結點數位n1,度數爲2的結點數爲n2#   n0 = n2 + 1(即:葉子結點數 - 1 就等於度數爲2的結點數)#   總結點數n = n0 + n1 + n2#   分支數 = n - 1 = n0 + n1 + n2 - 1#   分支數 = n0*0 + n1*1 + n2*2#   因此 n0 + n1 + n2 - 1 = n0*0 + n1*1 + n2*2 ==> n2 = n0 - 1# 4 高度爲k的二叉樹,至少有k個結點# 5 含有n(n>=1)個結點的高度至多爲n# 6 含有n(n>=1)個結點的高度至少爲math.ceil(log2(n+1)),向上取整# 7 具備n個結點的徹底二叉樹的深度爲int(log2n)或者math.ceil(log2(n+1))# 8 具備n個結點的徹底二叉樹,結點按照層次編號#   若是i=1,則結點i是二叉樹的根結點#   若是i>1,則其雙親是int(i/2),向下取整#   若是父結點是i,那麼左孩子結點就是2i,右孩子結點是2i+1#   若是2i>n,則結點i無左孩子,即結點i爲葉子結點;不然其左孩子存在編號爲2i#   若是2i+1>n,則結點i無右孩子,注意這裏並不能說明結點i沒有左孩子;不然右孩子存在編號爲2i+1
相關文章
相關標籤/搜索