c语言中2059错误,小白求助:编程中出现了C2059的错误

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

设电文符集D及各字符出现的概率F如下:

D={a,b,c,d,e,f,g,h}(字符数n=8)

F={5,29,7,8,14,23,3,11}(%)

编写完成下列功能的程序:

1.构造关于F的Huffman数;

2.求出并打印D中各字符的Huffman编码。

#include

#include

#include

#define n 8                  //设定权值数

#define m

2*n-1        //H树的节点数

typedef

struct              //定义节点

{

int wi;             //节点权值

char

data;      //该节点data值

int parent ,Lchild ,Rchild; //双亲及左、右子指针

}huffm;                   //H树节点说明符

void

HuffmTree(huffm HT[m+1] )   //构造H树的算法

{

int i, j, p1, p2; int w, s1, s2,max;

for(i=1;i<=m;i++)          //初始化

{ HT[i].wi=0;

HT[i].parent=HT[i].Lchild=HT[i].Rchild=0;

}

for(i=1; i<=n; i++)

scanf("%d",&w );   //读入权值

for(i=n+1;

i<=m; i++) //进行n-1次循环,产生n-1个新节点,构造H树

{

p1=p2=0;                  //p1、p2 为所选权值最小的根节点序号

s1=s2=max;             //设max为机器能表示的最大整数

for(j=1;j<=i-1;j++)     //从HT[1]~HT[i-1]中选两个权值最小的根节点

if(HT[j].parent==0)

if(HT[j].wi

{ s2=s1; p2=p1;    //以j节点为第一个权值最小的根节点

s1=HT[j].wi; p1=j; }

else if(HT[j].wi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值