
C++中简易构建和遍历哈夫曼树的方法
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本文介绍了如何在C++编程语言中简单地构建并遍历哈夫曼树,提供了一个实用且易于理解的方法。
本段落通过实例介绍了如何用C++创建并遍历哈夫曼树的简单方法,这是一种经典的算法实现。
该例的功能是:给定n个带权节点,构造一棵包含这n个带有指定权重叶节点的二叉树,并使其所有路径长度之和(WPL)最小。根据这一目标,可以采用以下最优树构建算法:
哈夫曼算法:
1. 将n个具有不同权值w1, w2, ..., wn-1, wn的节点按其数值递增排序。每个权重被视为一棵二叉树,由此形成一个包含n棵单独二叉树的森林F={T1,T2,...Tn},其中每棵树只有一个叶子结点且左右子数为空。
2. 在这个森林中选择两个根节点权值最小的单节点二叉树,并将它们作为新构造的一颗二叉树的左、右子树。这棵新的二叉树的新根节点权重为这两个被选中的原始单节点树的权重之和,而这些叶子结点则保持不变。
3. 重复上述步骤直到森林中只有一棵树为止,这就是最终形成的哈夫曼树。
全部评论 (0)
还没有任何评论哟~


