1.完全二叉樹的性質
面試題:如果乙個完全二叉樹的結點總數為768個,求葉子結點的個數。
由二叉樹的性質知:n0=n2+1,將之帶入768=n0+n1+n2中得:768=n1+2n2+1,因為完全二叉樹度為1的結點個數要麼為0,要麼為1,那麼就把n1=0或者1都代入公式中,很容易發現n1=1才符合條件。所以算出來n2=383,所以葉子結點個數n0=n2+1=384。
總結規律:如果一棵完全二叉樹的結點總數為n,那麼葉子結點等於n/2(當n為偶數時)或者(n+1)/2(當n為奇數時)
對任何非空二叉樹t,若n0 表示葉結點的個數、n2 表示度為2 的非葉結點的個數,那麼兩者滿足關係n0 = n2 + 1。
這個性質很有意思,下面我們來證明它。
證明:首先,假設該二叉樹有n 個節點,那麼它會有多少條邊呢?答案是n - 1,這是因為除了根節點,其餘的每個節點都有且只有乙個父節點,那麼這n 個節點恰好為樹貢獻了n - 1 條邊。這是從下往上的思考,而從上往下(從樹根到葉節點)的思考,容易得到每個節點的度數和 0*n0 + 1*n1 + 2*n2 即為邊的個數。
因此,我們有等式 n - 1 = n1 + 2*n2,把n 用n0 + n1 + n2 替換,得到n0 + n1 + n2 - 1 = n1 + 2*n2,於是有
n0 = n2 + 1。命題得證。
資料結構學習 線性結構部分,持續更新
1.線性表 1.1 定義 n個資料元素的有限序列,最常用最簡單的資料結構 線性表中元素的個數定義為線性表的長度,n 0的時候為空表 線性表的資料元素不僅可以進行訪問,還可以進行插入和刪除等。1.2 線性表的順序表示指的是用一組位址連續的儲存單元依次儲存線性表的資料元素 1.3 線性表的鏈式表示指用一...
C 面試題彙總 持續更新
1.c與c 的區別?c是面向過程,c 物件導向,c是c 的乙個子集,c 還有繼承多型分裝等特性 2.c 11的新特性?c 14?c 17 c 11 auto關鍵字,nullptr,for新用法 for auto a b 智慧型指標,匿名函式 lambda 等 c 14 auto關鍵字擴充套件,泛型l...
大資料面試題(持續更新)
首先是 mapreduce經過splitinput 輸入分片 決定map的個數在用record記錄 key value。然後分為以下三個流程 map 輸入 key long型別偏移量 value text一行字串 輸出 key value shuffle 合併 merge map輸出時先輸出到環形記...