樹的概念:
節(jié)點辐啄,根結(jié)點辩稽,父節(jié)點,子節(jié)點葛菇,兄弟節(jié)點
子樹甘磨,左子樹,右子樹
節(jié)點的度:子樹的個數(shù)
葉子節(jié)點:度為0的節(jié)點
非葉子節(jié)點:度不為0的節(jié)點
節(jié)點的深度:從根結(jié)點到當前節(jié)點的唯一路徑上的節(jié)點總數(shù)
節(jié)點的高度:從當前節(jié)點到最遠的葉子節(jié)點的路徑上的節(jié)點總數(shù)
樹的深度:所有節(jié)點深度中的最大值
樹的高度:所有節(jié)點高度中的最大值
樹的深度=樹的高度
沒有任何節(jié)點稱為空數(shù)
二叉樹:
每個節(jié)點的度最大為2(最多有2棵字數(shù))
左子樹和右子樹是有順序的
非空二叉樹的第i層眯停,最多有2^(i-1)個節(jié)點
在高度為h的二叉樹上最多有2^h-1個節(jié)點
對于任何一棵非空二叉樹济舆,如果葉子節(jié)點個數(shù)為n0,度為2的節(jié)點個數(shù)為n2,則n0=n2+1
真二叉樹:所有節(jié)點的度要么為0,要么為2
滿二叉樹:所有節(jié)點的度要么為0莺债,要么為2吗冤,且所有的葉子節(jié)點都在最后一層
滿二叉樹一定是真二叉樹,真二叉樹不一定是滿二叉樹
滿二叉樹第i層的節(jié)點數(shù)量為2^(i-1)九府,葉子節(jié)點數(shù)量為2^(h-1)
滿二叉樹的總結(jié)點數(shù)量為n=2^h-1
完全二叉樹:葉子節(jié)點只會出現(xiàn)在最后2層,且最后1層的葉子節(jié)點都靠左對齊
滿二叉樹一定是一棵完全二叉樹覆致,完全二叉樹不一定是滿二叉樹
度為1的節(jié)點只有左子樹侄旬,度為1的節(jié)點要么是1個,要么是0個
同樣節(jié)點數(shù)量的二叉樹煌妈,完全二叉樹的高度最小
假設完全二叉樹的高度為h(h>=1),那么至少有2^(h-1)個節(jié)點儡羔,最多有2^h-1個節(jié)點
總節(jié)點數(shù)量為n
h=log2n向下取整+1,向下取整是floor,向上取整是ceiling
h=floor(log2n)+1
一棵有n個節(jié)點的完全二叉樹,對任意第i個節(jié)點
如果i=1,它是根結(jié)點
如果i>1,它的父節(jié)點的編號為floor(i/2)
如果2i<=n,它的左子節(jié)點編號為2i
如果2i>n,它無左子節(jié)點
如果2i+1<=n,它的右子節(jié)點編號為2i+1
如果2i+1>n,它無右子節(jié)點
如果完全二叉樹的n1(有一個子節(jié)點)為0,葉子節(jié)點個數(shù)n0=n/2
如果n1為1璧诵,葉子節(jié)點個數(shù)為n0=(n+1)/2
因為程序會自動向下取整 ?n0=(n+1) >> 1