本文以实例形式讲述了C++实现哈夫曼树简单创建与遍历的方法,比较经典的C++算法。
本例实现的功能为:给定n个带权的节点,如何构造一棵n个带有给定权值的叶节点的二叉树,使其带全路径长度WPL最小。
据此构造出最优树算法如下:
哈夫曼算法:
1. 将n个权值分别为w1,w2,w3,….wn-1,wn的节点按权值递增排序,将每个权值作为一棵二叉树。构成n棵二叉树森林F={T1,T2,T3,T4,…Tn},其中每个二叉树都只有一个权值,其左右字数为空
2. 在森林F中选取根节点权值最小二叉树,作为左右