数据结构——构造哈夫曼树
例子{2,4,5,7,8}
构造步骤:
1)从小到大进行排序,将每一个结点看成一棵二叉树,则这个时候每一个结点都是自己所在的二叉树的根节点
2)取出根节点权值最小的两棵二叉树,分别作为左右子树组成一颗性的二叉树,二叉树的根节点值等于两颗二叉树的值之和
3)再将这棵二叉树放进序列中继续排序,重复以上步骤,最终得到哈夫曼树
则该哈夫曼树带权路径长度为
(2+4)*3+(5+7+8)*2 = 58
例子{2,4,5,7,8}
构造步骤:
1)从小到大进行排序,将每一个结点看成一棵二叉树,则这个时候每一个结点都是自己所在的二叉树的根节点
2)取出根节点权值最小的两棵二叉树,分别作为左右子树组成一颗性的二叉树,二叉树的根节点值等于两颗二叉树的值之和
3)再将这棵二叉树放进序列中继续排序,重复以上步骤,最终得到哈夫曼树
则该哈夫曼树带权路径长度为
(2+4)*3+(5+7+8)*2 = 58