哈夫曼树

  
  

从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上的分支数目称作路径长度。树的路径长度是从树根到每个结点的路径长度之和。结点的带权路径长度为结点到树根之间的路径长度与结点上权的乘机,树的带权路径长度为树中所有叶子节点的带权路径长度之和。

     

头文件:

  
 <代码>/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  *版权:悦工作站
  *
  *文件名:HuffmanTree.h
  *
  *功能:霍夫曼树的数据结构定义
  *
  *作者:亚伯·李
  *
  * CreateOn: 2012-2-19
  *
  *日志:2012-2-19由阿贝尔李创建
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */的ifndef HUFFMAN_TREE_H
  #定义HUFFMAN_TREE_H
  
  # include“global.h”
  
  #定义4号
  
  类型定义结构体
  {
  int重量;
  int母公司lchild rchild;
  * HuffmanTree} HTNode;
  
  空白PrintHuffmanTree (HuffmanTree ht, int n);
  
  # endif  
  

源文件:

  
 <代码>/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  *版权:悦工作站
  *
  *文件名:HuffmanTree.c
  *
  *功能:霍夫曼树的操作
  *
  *作者:亚伯·李
  *
  * CreateOn: 2012-2-19
  *
  *日志:2011-5-3由阿贝尔李创建
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */# include“. ./公司/HuffmanTree.h”//最小的数
  静态int _min (HuffmanTree ht, int i)
  {
  int j=0;
  int temp=0;
  
  (j=0;j<我;+ + j)
  {
  如果(ht [j]。父母==0)
  {
  temp=j;
  打破;
  }
  }
  (j=temp;j<我;+ + j)
  {
  如果(ht [j]。父母==0,,ht [j] .weight哈夫曼树