求三叉樹高度

2022-03-07 16:25:16 字數 972 閱讀 4737

有12345個結點的滿3叉數的高度為_____寫出計算過程

1                      層:1 節點數:1

/          |              \              

2           3               4              層:2 節點數:3

/ | \       / | \            / | \

5 6 7     8 9 10       11 12 13          層:3 節點數:9

滿三叉樹每層節點數目

假設k-1層有n個節點 那麼第k層就應該有3n個節點。也就是說這是乙個首項是1,公比是3的等比數列。第n層節點數an可以表示為

an=a1*q^(n-1) = 1*3(n-1) = 3^(n-1)   

滿三叉樹總的節點數目

總的節點數目就是對各層節點數目求和,每層的節點數目計算公式已經有了。然後就是公比數列求和就行了。乙個高位n的滿三叉樹總節點個數

sn = a1*(1-q^n)/(1-q) = 1*(1-3^n)/(1-3) = (3^n-1)/2

其實有了這個公式這題就可以做了,可以估計一下。求得乙個n和n+1讓12345在sn和sn'之間就行了。

下面給出乙個較為嚴格的推導。

....

/.......\      

(3^(k-1)-1)/2   層:k-1

/                 \    

(3^(k-1)+1)/2   (3^k-1)/2    層:k

設乙個有n層的滿三叉樹的節點總數為n,那麼

(3^(k-1)+1)/2  <= n <= (3^k-1)/2

3^(k-1)+1 <= 2n

3^k-1 >= 2n

k <= log3(2n - 1) - 1

k >= log3(2n + 1)

對k向下取整就行了。

三叉搜尋樹

三叉搜尋樹是用來解決字典樹的記憶體問題的資料結構。為了避免不需要的節點的記憶體占用,每個字典樹節點不再使用陣列,而是使用 樹中有樹 的結構。在三叉搜尋樹中,字典樹節點的每個非空指標得到它自己。例如,有四個單詞,ab abba abcd和bcd,它的三叉搜尋樹結構如下 三叉搜尋樹包括三種箭頭。第一種,...

Trie三叉樹分詞實現

最長匹配中文詞典分詞演算法 中文的語句與英文不同,英文單詞之間均有空格隔開,英文的語句沒有分詞的概念。而中文則不同,單詞之間沒有空格隔開。在處理中文語句時需要對中文語句進行分詞。目前多數的中文分詞的演算法採用了,最長匹配詞典的演算法。詞典是將眾多的中文片語存放在乙個檔案內。如下的詞典的格式 大 大學...

GDI 實現三維三叉樹

首先看看效果 在學習二叉樹資料結構的時候,用gdi 結合佇列或者棧來畫出來乙個二叉樹的結構,如果你不是一次繪製完成,而是從每兩個線的繪製有時間間隔的話,你就能看到樹的 生長過程 而使用棧和佇列將得到完全不同的生長方式,也許這就是深度優先遍歷和廣度優先遍歷的區別把。那麼,我當時就在想,如果繪製乙個空間...