哈夫曼树是带权值的树节点结构,且目标节点都存储在叶子节点上。下面使用Go实现哈夫曼树
哈弗曼树构建过程
将带权值的节点进行排序,形成有序的链表。
取出链表头两个节点,权值相加形成新节点,并加入上述链表中重新排序,两节点分别为构建为左右子树,新创建的节点为父节点。
重复步骤2直到链表节点为1退出构造
哈夫曼节点定义
type huffmannode struct {
value interface{} //store the value of huffman tree node
weight uint32 //store the weight of node
}
节点实现链表的比较以
- 1
- 2
前往页