永发信息网

1.电文中字符a,b,c,d,e,f,g出现的概率分别为7%,9%,12%,20...

答案:1  悬赏:50  手机版
解决时间 2021-02-08 14:05
1.电文中字符a,b,c,d,e,f,g出现的概率分别为7%,9%,12%,20...
最佳答案
是我们大三做的一个上机题:

上机题:设电文字符集D及各字符出现的概率F如下:
D={a,b,c,d,e,f,g,h}(字符数n=8)
F={5,29,7,8,14,23,3,11}(%)
编写完成下列功能的程序:
①构造关于F的Huffman树;
②求出并打印D总各字符的Huffman编码。
程序结构: 类型说明;
构造Huffman树的函数:Huffman_tree(H[m 1]);
求Huffman编码的函数:Huffman_code(code[n 1]);
main()
{ 变量说明;
输入字符集D及频率F;
调用Huffman_tree(H);
调用Huffman_code(code);
打印编码;Y继续,N退出}

运行后,输入8个字符(中间不能有空格,否则将空格视为字符处理),然后输入概率(整数,空格或回车分隔。如果要支持浮点数,要改程序)然后Enter,出现构造的霍夫曼节点和编码,程序如下
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define N 8
#define M 2*N-1
#define MAX 32767
typedef char datatype;
typedef struct
{
int wi;
char data;
int Parent,Lchild,Rchild;
}huffm;
typedef struct
{
char bits[N 1];
int start;
char ch;
}ctype;

void Huffman_tree(huffm H[M 1])
{
int i,j,p1,p2;
int w,s1,s2;
for(i=1;i=M;i )
{
H[i].wi=MAX;
H[i].Parent=0;
H[i].Lchild=H[i].Rchild=0;
}
printf("please enter the weight:\n");
for(i=1;i=N;i )
{
scanf("%d",
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
你好 我想问你一下iphone4的初始密码是多少?
京平高速公路/S224(路口)怎么去啊,有知道地
心意把打实战怎么样?哪个心意把更好些?
广西高考能否报广东大学
中联大酒店在哪里啊,我有事要去这个地方
英语翻译平时主要工作内容是更新网站的文章,
咳嗽吐血丝是怎么回事
如何区分喜欢和好感?
佛山什么时候开始限购楼的
阿燕小吃我想知道这个在什么地方
孩子发烧了,不吃药怎么办??
信用卡申请收入写的5到10万能下来多少额度
上海B2驾照实习期满1年考试
哺乳动物妊娠时间长,每胎产仔少,繁殖速度慢
恒大汽修地址在哪,我要去那里办事
推荐资讯
渭南市华县富华驾校驾驶证制证费多钱
云晞宝贝世纪华联店地址有知道的么?有点事想
同诚财富开发区广缘店我想知道这个在什么地方
启运门窗地址有知道的么?有点事想过去
帅然金属门窗有限公司我想知道这个在什么地方
我是平面设计师,想买台出差工作用的,可以做
徐州市贾汪区青山泉镇青山泉村村民委员会地址
易生康声波通经络在什么地方啊,我要过去处理
【发光二极管英文】发光二极管的英文缩写是()
我的标致307手自一体改天然气以后,早晨发动
德信小家电在哪里啊,我有事要去这个地方
为什么我买的茉莉花是没有香味的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?