两道数据结构的题,请帮忙回答,一个是关于转化二叉树的,一个是关于设计字符Huffman编码的

请大家帮忙,最好能图解的图解,能文字的文字,按照考试的要求回答,回答的好的我会加分的,谢谢了图好像看不清我文字打一遍第一题abcdefghijk第二题假定一电文中仅出现8... 请大家帮忙,最好能图解的图解,能文字的文字,按照考试的要求回答,回答的好的我会加分的,谢谢了
图好像看不清
我文字打一遍
第一题
a
b c d
e f g h
i j k
第二题
假定一电文中仅出现8个字符:A B C D E F G H,各字符在电文中出现的频率分别为0.05,0.25,0.03,0.06,0.10,0.12,0.35,0.04,。试为这8个字符设计Huffman编码(要求在构造Huffman树时左孩子的结点值小于等于右孩子的结点值,并且左分支表示0,右分支表示1)。
展开
 我来答
woyuyuchao
2011-12-23 · 超过10用户采纳过TA的回答
知道答主
回答量:16
采纳率:0%
帮助的人:22万
展开全部
程序结构: 类型说明;
构造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",
情斯结r
2011-12-22
知道答主
回答量:30
采纳率:0%
帮助的人:18.2万
展开全部
把它根据权值依次转化为二叉树
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式