一:哈夫曼树的构造
①权值,带权路径长度。
②一组确定权值的叶子节点可以构造多个不同的二叉树,但是带权路径长度min的是哈夫曼树
③算法基本思想及其实操图片演示
注:存储结构和伪代码
1 初始化:
构造2n-1棵只有一个根节点的二叉树,parent=rchild=lchild=-1;
其中前n个元素给定权值w【n】
2 选取权值最小的两颗二叉树进行n-1次合并:
代码演示:
首先将新建二叉树的权值weight为权值最小的两个weight的和
2和3的双亲下标parent改为新建二叉树的下标k(这一步就相当于把这两个权值最小的节点从2n-1棵只有根节点的二叉树中删除了)
左孩子lchild更改为i1,rchild更改为i2
小结:先求weight,在改两个parent,最后改child