哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
1 / 71
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
1 / 71
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
————————————————————————————————
———————————————————————————————— 日期:
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
2 / 72
哈夫曼算法建立最优二叉树
#include<>
#include<>
#include<>
#include<string>
#define MAX_NUMBER_OF_TREE_NODES20
树的结点的类型定义
typedef struct
{
unsigned int weight;
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree;
子函数的声明局部
voidInitTreeNode(HTNode);
voidCinWeightForTreeNode(HTNode);
voidGiveOrderForTreeNode(HTNode);
voidCopyTreeNodeOrTree(HTNode,HTNode);
int main()
{
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
3 / 73
哈夫曼算法建立最优二叉树
定义将要用于构造哈弗曼树的结点
HTNodeTreeNodes[MAX_NUMBER_OF_TREE_NODES+1];
调用函数初始化数组结点
InitTreeNode(TreeNodes);
由用户输入各个结点的权值
CinWeightForTreeNode(TreeNodes);
对数组中的结点进行排序
GiveOrderForTreeNode(TreeNodes);
return true;
}
初始化结点值,使全部为NULLvoidInitTreeNode(HTNode*treenodes)
{
int i=1
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
4 / 74
哈夫曼算法建立最优二叉树
//数组的首结点用来存数一些信息, 如weight域用来存储节点
哈夫曼算法建立最优二叉树
哈夫曼算法建立最优二叉树
7 / 77
哈夫曼算法建立最优二叉树
的多少
突然想到了一个好处就是:等会我们几点不断减少的过程中可以用首结点的
//weight 来指示剩余结点的数目,做访问数组元素的界限
treenodes[0].weight=MAX_NUMBER_OF_TREE_NODES;
哈夫曼算法建立最优二叉树 来自淘豆网m.daumloan.com转载请标明出处.