设计程序以实现构造哈夫曼树的哈夫曼算法

这篇博客介绍了如何使用哈夫曼算法来构造哈夫曼树,并通过C++代码展示了数据的输入、存储、排序以及哈夫曼树的构建过程。博主通过`tree_insert`函数插入节点,`delete_min`获取最小元素,最终计算并输出了哈夫曼树的带权路径长度。

//数据结构课程设计、
//设计程序以实现构造哈夫曼树的哈夫曼算法。
//要求:使用实验工具的有关功能;要能有演示过程;求解出所构造的哈夫曼
//树的带权路径长度。

#include"btreint.h"

int count=0;
//数据的个数;
bitre data[50];//存储数组

void delete_min()//获得最小元素、
{
 for(int i=1;i<=count-2;i++)
 data[i]=data[i+2];
}

int tree_insert(bitre t)//插入新的节点;
{   if(t->data>=data[count]->data){data[++count]=t;return 0;}
 else{int m;
 for(int j=1;j<=count;j++)
 if(data[j]->data>=t->data){m=j;break;}
 for(int k=count;k>=m;k--)
 data[k+1]=data[k];
 data[m]=t;
 count++;}

}

int num=0;
get_long(bitre t)//求解huffman树的带权路径长度;
{
 if(t!=NULL)
{
 if(t->rchild!=NULL&&t->lchild!=NULL)
 {
 visite_bnode(t,1);
 num=num+t->data;
 get_long(t->lchild);
 get_long(t->rchild);
 }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值