日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

huffman树_笃学不倦|c语言构造哈夫曼树哈夫曼编码

發布時間:2024/8/23 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 huffman树_笃学不倦|c语言构造哈夫曼树哈夫曼编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?艾薇巴蒂!許久不見甚是想念,想必這”漲姿勢”的時刻大家已經期待許久了!今天我們要共同學習的是c語言構造哈夫曼樹-哈夫曼編碼

構造哈夫曼樹
首先,我們需要了解哈夫曼樹是什么:

相關知識點路徑:?

? ? ? ?路徑是指從一個節點到另一個節點的分支序列。

路徑長度

? ? ? ?指從一個節點到另一個結點所經過的分支數目。,從根節點到a的分支數目是2,

數的路徑長度

? ? ? ?樹中所有結點的路徑長度之和為樹的路徑長度PL 如圖pl為10

節點的權

? ? ? ? 給樹的每個結點賦予一個具有某種實際意義的實數,我們稱該實數為這個結點的權

帶權路徑長度

? ? ? ? 從樹根到某一結點的路徑長度與該節點的權的乘積,叫做該結點的帶權路徑長度樹的帶權路徑長度:?樹的帶權路徑長度為樹中所有葉子節點的帶權路徑長度之和。

構造Huffman樹的步驟:
? ? ? 1) 根據給定的n個權值,構造n棵只有一個根結點的二叉樹,n個權值分別是這些二叉樹根結點的權;
? ? ? 2) 設F是由這n棵二叉樹構成的集合,在F中選取兩棵根結點權值最小的樹作為左、右子樹,構造成一顆新的二叉樹,置新二叉樹根結點的權值等于左、右子樹根結點的權值之和。為了使得到的哈夫曼樹的結構唯一,規定根結點權值最小的作為新二叉樹的左子樹。

? ? ? 3) 從F中刪除這兩棵樹,并將新樹加入F;
? ? ? 4) 重復2)、3)步,直到F中只含一棵樹為止,這棵樹便是Huffman樹。
說明:n個結點需要進行n-1次合并,每次合并都產生一個新的結點,最終的Huffman樹共有2n-1個結點。

如何構建哈夫曼樹:

如上即可較為清晰的理解最優二叉樹的構造了。哈夫曼樹代碼的實現

所以:我們構成了一個哈夫曼樹的結點結構HTNode:

下面給出具體實現代碼:

? ? ? ?不會吧?不會吧?不會真的還有人看了小軟的課程還沒有明白吧?不明白也沒有關系哦,只要動動你可愛的小手指上滑再反復觀看,拍拍你聰明的小腦袋瓜就一定能了如指掌啦!

? ? ? ?小軟這就去再看一遍,讓我們一起加油,頂峰相見!

- END -

圖片來源:來源于網絡

責任編輯:劉泊璇? ?連雨歡

總結

以上是生活随笔為你收集整理的huffman树_笃学不倦|c语言构造哈夫曼树哈夫曼编码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。