【数据结构与算法】哈夫曼树的Java实现
生活随笔
收集整理的這篇文章主要介紹了
【数据结构与算法】哈夫曼树的Java实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
哈夫曼樹
最優(yōu)二叉樹也稱哈夫曼樹,講的直白點(diǎn)就是每個(gè)結(jié)點(diǎn)都帶權(quán)值,我們讓大的值離根近、小的值離根遠(yuǎn),實(shí)現(xiàn)整體權(quán)值(帶權(quán)路徑長度)最小化。
哈夫曼算法的思想我認(rèn)為就是上面講的,而它的算法實(shí)現(xiàn)思路是這樣的:
從根結(jié)點(diǎn)中抽出權(quán)值最小的兩個(gè)(涉及排序,但是我這個(gè)實(shí)現(xiàn)代碼沒做嚴(yán)格的排序,只有比較)合并出新的根結(jié)點(diǎn)重新加入排序(被抽出來的兩個(gè)自然是變成非根結(jié)點(diǎn)了啊),就這樣循環(huán)下去,直到合并完成,我們得到一顆最優(yōu)二叉樹——哈夫曼樹。
說明:
定義哈夫曼樹結(jié)點(diǎn)
public class HuffmanNode {private int weight =總結(jié)
以上是生活随笔為你收集整理的【数据结构与算法】哈夫曼树的Java实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Warshall(沃舍尔)算法求解
- 下一篇: 【Java】如何较好地将int转化成St