下载此文档

哈夫曼算法建立最优二叉树.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
哈夫曼算法建立最优二叉树.doc哈夫曼算法建立最优二叉树
#include<>
#include<>
#include<>
#include<string>
#define MAX_NUMBER_OF_TREE_NODES 20
//树的结点的类型定义
typedef struct
{
unsigned int weight;
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree;
//子函数的声明部分
void InitTreeNode(HTNode);
void CinWeightForTreeNode(HTNode);
void GiveOrderForTreeNode(HTNode);
void CopyTreeNodeOrTree(HTNode,HTNode);
int main()
{
//定义将要用于构造哈弗曼树的结点
HTNode TreeNodes[MAX_NUMBER_OF_TREE_NODES+1];
//调用函数初始化数组结点
InitTreeNode(TreeNodes);
//由用户输入各个结点的权值
CinWeightForTreeNode(TreeNodes);
//对数组中的结点进行排序
GiveOrderForTreeNode(TreeNodes);
return true;
}
//初始化结点值,使全部为NULL
void InitTreeNode(HTNode *treenodes)
{

int i=1
//数组的首结点用来存数一些信息,如weight域用来存储节点的多少
//突然想到了一个好处就是:等会我们几点不断减少的过程中可以用首结点的
//weight来指示剩余结点的数目,做访问数组元素的界限
treenodes[0].weight=MAX_NUMBER_OF_TREE_NODES;
treenodes[0].lchild=NULL;
treenodes[0].parent=NULL;
treenodes[0].rchild=NULL;
for(;i<=MAX_NUMBER_OF_TREE_NODES;i++)
{
treenodes[i].weight=0;
treenodes[i].lchild=0;
treenodes[i].rchild=0;
treenodes[i].parent=0;
}
}
void CinWeightForTreeNode(HTNode *treenodes)
{
int i=1;
cout<<"请输入每个结点的权值:"<<endl;
for(;i<=MAX_NUMBER_TREE_NODES;i++)
{
cout<<"第"<<i<<"个结点的权值是:"<<endl;
cin>>treenodes[i].weight;
}
}
void GiveOrderForTreeNode(HTNode *treenode

哈夫曼算法建立最优二叉树 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人平平
  • 文件大小28 KB
  • 时间2021-07-26