哈夫曼树的构造.docxVIP

  • 3
  • 0
  • 约小于1千字
  • 约 10页
  • 2021-03-18 发布于山东
  • 举报
哈夫曼树的构造 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 哈夫曼树的构造 构造哈夫曼树的过程是这样的 一、构成初始集合 对给定的 n 个权值 {W1,W2,W3,...,Wi,...,Wn} 构成 n 棵二叉树的初始集合 F={T1, T2,T3,...,Ti,...,Tn} ,其中每棵二叉树 Ti 中只有一个权值为 Wi 的根结点,它的左右子 树均为空。(为方便在计算机上实现算法, 一般还要求以 Ti 的权值 Wi 的升序排列。 ) 二、选取左右子树 在 F 中选取两棵根结点权值最小的树作为新构造的二叉树的左右子树, 新二叉树 的根结点的权值为其左右子树的根结点的权值之和。 三、删除左右子树 从 F 中删除这两棵树, 并把这棵新的二叉树同样以升序排列加入到集合 F 中。 四、重复二和三两步, 重复二和三两步,直到集合 F 中只有一棵二叉树为止。 举个例子 有个序列是 (7,9,2,6,32,3,21,10) 叫你求哈夫曼树 步骤一:把这些点都看成是一个只有根结点的树的集合 F 步骤二,选 2 个值最小的树 步骤三:在这些树的集合 F 中删除这 2 棵树 然后把 构成一颗二叉树 变成了 (5=2+3) 然后把这个树加入到集合 F 代表这棵树的权值然后继续上述步骤 肯定是选 5 和 6 把这 2 个构成二叉树 在 F中删除 5 6 加入 11 这棵树变成了 继续上述步骤 选7和9 在 F中删除 7和 9 加入 16 这棵树 变成了 继续上述步骤 选 10和11 在 F中删除 10 和 11 加入 21 这棵树 继续上述步骤 选 16 和 21 (有 2 个 21,随便选哪个) 我选那个只有一个根结点的 21 好了 16 和 21 构成二叉树 在 F 中删除这 16 和 21 这两棵树加入 37 这棵树 继续上述步骤 选21和 32 构成二叉树 在F中删除 21和32这2两棵树加入 53 这棵树 还是继续上面步骤 把 F 中的两棵树合并成一棵树 完成了 ! 这个就是哈夫曼树

文档评论(0)

1亿VIP精品文档

相关文档