資料結構中哈夫曼樹T具有葉子結點,樹T的最高高度是多少

2021-05-28 23:22:05 字數 1065 閱讀 4708

1樓:肆影的影

畫出一個二叉樹,可如下:

o/  \

o   o

/  \

o   o

/  \

o   o

/  \

o   o

這不是很明顯的事嗎?如果根的高度從內0開始計,則該樹樹高為容4,如果根的高度從1開始計,則該樹高度為5。再怎麼也不會是3啊。

什麼是哈夫曼樹

給定n個權值作為n個葉子結點,構造一棵二叉樹,帶權路徑長度達到最小。帶權路徑長度最短的樹,權值較大的結點離根較近

構造的方法

在森林中選出兩個根結點的權值最小的樹合併,作為一棵新樹的左、右子樹,且新樹的根結點權值為其左、右子樹根結點權值之和;

我的結果

錯誤原因

構造過程沒問題,只是最後左子樹大於了右子樹,所以錯誤了(因為這是規範,左子樹權值要小於右子樹)

n個葉子結點的哈夫曼樹共有幾個結點

2樓:我亦如初見

一共有bai2n-1個結點

設葉子du節點個

數為zhin,度dao為1的節點個數為m,度為2的節點個數為l.

顯然易知:專一顆二叉樹屬的節點數 = 這個樹的度加1(因為每個節點都是前一個節點的度,根節點除外,所以要加1)

故有 l + m + n = 2l + m + 1----> n = l + 1

由於哈夫曼樹沒有度為1的節點,在m = 0總節點 = n + m + l = 2n - 1擴充套件資料在計算機資料處理中,霍夫曼編碼使用變長編碼表對源符號(如檔案中的一個字母)進行編碼,其中變長編碼表是通過一種評估**符號出現機率的方法得到的,出現機率高的字母使用較短的編碼,反之出現機率低的則使用較長的編碼,這便使編碼之後的字串的平均長度、期望值降低,從而達到無失真壓縮資料的目的。

3樓:匿名使用者

huffman 樹是所謂的正則二叉樹,只有度為0和度為2的結點

根據二叉樹的性質,n0 = n2 + 1,因此該樹中度為2的結點數量為n-1

於是一共有2n-1個結點

資料結構中,什麼時候用,資料結構中,什麼時候用

這個是取bai地址的作du 用。一般定義一個普通變數,zhi若要dao將其在指標中呼叫就專要用 如int a 要將屬a在函式void hanshu int t 中呼叫的話,那麼就應該寫成hanshu a 另外在鍵盤輸入資料的時候也要用到,比如scanf d a 這個符號,主要用在這兩個地方。在資料結...

c語言資料結構時間複雜度,C語言,資料結構中演算法的時間複雜度

1 因為抄f n 和g n 在n趨於 無窮大時襲為n 3階,h n 為n 1.5因此 1 f n o g n 2 g n o f n 3 h n o n 1.5 都正確bai,第 4 不對,du因為nlgn 的無窮zhi 大階次比n 1.5低,h n 趨於無窮大時dao被忽略了3 從優到劣也就是從階...

資料結構二叉樹,已知中序遍歷後序遍歷,如何求先序遍歷

preorder遍歷 訪問根節點的操作發生在遍歷左和右子樹之前。中間順序遍歷 訪問根節點的操作發生在左邊和右邊的子樹中。順序遍歷 訪問根節點的操作發生在遍歷左邊和右邊的子樹之後。解決方案 首先,看到後序遍歷dbcefgha,a是總根節點。然後發現中間順序遍歷a在edcbahfg中的位置,然後在a的左...