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

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 构造

大家好,欢迎来到IT知识分享网。

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

设电文符集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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/136014.html

(0)
上一篇 2025-06-30 17:10
下一篇 2025-06-30 17:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信