點擊題目下空白處可查看答案
一、
n個結點的線索二叉樹上含有的線索數?
線索二叉樹中每個節點有兩個指針域。
二叉樹中(除了根節點外)每個節點都有父結點,其與父結點的連線即爲一條邊。若二叉樹有 n 個節點,則有 n-1 條邊,所以這 n-1個 條邊佔掉了 n-1 個指針域。故剩下的 2n-(n-1)=n+1 個指針域(包括空指針)就是線索數。
二、
有一個 100*90 的稀疏矩陣,非 0 元素有 10 個,設每個整型數佔 2 字節,則用三元組表示該矩陣時,求所需的字節數。
將非零元素所在行、列、非零元素的值構成一個三元組(i,j,v) 。
對於該題:
每個非零元素佔 3*2=6 個字節,共 10 個非零元素,需 6*10 = 60 個字節;
此外,還一般要用三個整數來存儲矩陣的行數、列數和總元素個數,又需要 3*2 = 6 個字節;
總共:60 + 6 = 66 個字節。
三、
廣義表 (((a,b,c),d,e,f)) 的長度?
廣義表即我們通常所說的列表(lists)。它放鬆了對錶元素的原子性限制,允許他們有自身結構。
廣義表的長度:去掉一層括號剩下的是幾部分
廣義表的深度:總共含括號的層數
在本題中:
廣義表去掉一層括號後爲 ((a,b,c),d,e,f),所以長度爲 1;總共能去掉 3 層括號,所以深度爲 3 。
四、
深度爲 k 具有 n 個結點的完全二叉樹,求其編號最小的葉結點序號。
最小葉節點可能在最後一層,也可能在倒數第二層,因此 2^(k-2) 並不一定是最小葉節點的序號。因而我們需要從 n 個結點入手。
完全二叉樹中,根節點的序號爲 i,那麼根節點的左節點序號是 2*i,右節點的序號是 2*i+1,已知最後一個節點的序號是 n,因此它的父節點序號是 [n/2],編號最小的葉節點位於該父結點的右邊,因此序號爲 [n/2]+1 。
往期文章: