從一棵二叉樹中查詢出所有結點的最大值

2021-03-09 13:45:57 字數 1361 閱讀 3679

1樓:秋天來了仔陳

#include //標頭檔案

#include

#include

typedef struct bitnodebitnode,*bitree;//定義結點型別int max=-100;//把max定義得足夠小bitree createbitree()//先序遞迴建立樹return (t);

}int max(bitree t)//求最大(遞迴演算法)return max;

}void main()//主函式

原理很簡單,隨便通過一種遍歷(我用的是先序),先把根節點的值給max,然後在訪問其他節點的時候判斷那個值是否更大,如果是就賦值給max,最後就可以找到最大值了。

想了一下,如果用遞迴的話就不要用到棧了,這樣更簡單,如果你需要非遞迴的話可以聯絡我。你不會建立樹可以聯絡。

2樓:匿名使用者

額....給你個思想吧

bai,在電腦上面弄du程式打起zhi來困難查詢每個結點的左孩dao子,如果回左孩子還有兒子答,繼續查詢其左兒子...直到最後一層,比較左兒子和右兒子的大小,如果左兒子比右兒子大,則不交換位置,否則交換.再用左兒子和其父結點比較,如果父結點比左兒子大,則不交換,否則交換...

這樣進行一次後續的遍歷,最終把最大的值丟進了根節點!

ok.程式自己編寫....

二叉樹每個節點有一個權值,給定一棵二叉樹,求權值和最大的值

3樓:不是苦瓜是什麼

給定權值總數有n個,則其哈夫曼樹的結點總數為2*n-1;

給定n個權值作為n的葉子結點,構造一棵二叉樹,若帶權路徑長度達到最小,稱這樣的二叉樹為最優二叉樹,也稱為哈夫曼樹(huffman tree)。哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。

二叉樹中的權值就是對葉子結點賦予的一個有意義的數量值。

一棵深度為k,且有2^k-1個節點的二叉樹,稱為滿二叉樹。這種樹的特點是每一層上的節點數都是最大節點數。而在一棵二叉樹中,除最後一層外,若其餘層都是滿的,並且最後一層或者是滿的,或者是在右邊缺少連續若干節點,則此二叉樹為完全二叉樹。

具有n個節點的完全二叉樹的深度為floor(log2n)+1。深度為k的完全二叉樹,至少有2k-1個葉子節點,至多有2k-1個節點。

4樓:鍾晴董琪

是的。因為最優二叉樹構造方法第一步就是選擇兩個權值最小的節點合併成一個樹。

在一顆具有5層的滿二叉樹中,結點總數為【】

5樓:匿名使用者

結點總數與高度關係公式: n = 2^h -1 ,即2的h次-1

所以本題,結點總數 n = 2^5 -1 = 31個

在一棵具有n個結點的二叉樹中,所有結點的空子樹一共有?棵,為什麼

肯定是n 1棵 因為n個結點理論上有2n個分支,但是n個結點的樹中有n 1條邊2n n 1 n 1 用數學歸納法也可以證明的 在一棵具有n個結點的二叉樹中,所有結點的空子樹等於n 1是怎麼算出來的?5 我想可以這麼考慮,n個結點,每個節點應該有2個孩子結點,一共就是2n個,而除了根節點的其他n 1個...

一顆二叉樹有度為0的結點,可以知道該二叉樹中度為2的

11 x 1所以x 10 ps 二叉樹只有度為 0 1 和2 的度 點數位n0,度為2的結點數為n2則n0 n2 1。由此葉子結點數為16個 若一顆二叉樹具有10個度為2的結點,則該二叉樹的度為0的結點個數為多少?若一顆bai 二叉樹具有10個度為2的結點du,則zhi該二叉樹的度為0的結點個數為d...

若一顆二叉樹具有度為2的結點,則該二叉樹的度為0的結點個數為多少

若一顆bai 二叉樹具有10個度為2的結點du,則zhi該二叉樹的度為0的結點個數為dao11個。根據二叉樹回性質n n 1,因答此度為0的結點個數為10 1 11個 即若在任意一棵二叉樹中,有n個葉子節點,有n 個度為2的節點,則必有n n 1。完全二叉樹的特點是葉子結點只可能出現在層序最大的兩層...