程序填空题:哈夫曼编码
假定已有一棵哈夫曼树,请输出每个结点的哈夫曼编码。
c++
typedef struct Hfnode // 结点类型
{
char name[10];
int data; //权值域
struct Hfnode *Lson, *Rson, *next;
} Hfnode,*Hfptr;
int top=-1;
char hc[N];//临时存放哈夫曼编码
void encode(Hfptr p)
{
if()
{
hc[top+1]='\0';
printf("%s\n",hc);//输出哈夫曼编码
return ;
}
top++;
hc[top]=;
if(p->Lson!=NULL)
encode(p->Lson);
hc[top]='1';
if(p->Rson!=NULL)
encode();
;
}
答案:
第1空:p->Lson==NULL && p->Rson==NULL
第2空:'0'
第3空:p->Rson
第4空:top--
c++
typedef struct Hfnode // 结点类型
{
char name[10];
int data; //权值域
struct Hfnode *Lson, *Rson, *next;
} Hfnode,*Hfptr;
int top=-1;
char hc[N];//临时存放哈夫曼编码
void encode(Hfptr p)
{
if()
{
hc[top+1]='\0';
printf("%s\n",hc);//输出哈夫曼编码
return ;
}
top++;
hc[top]=;
if(p->Lson!=NULL)
encode(p->Lson);
hc[top]='1';
if(p->Rson!=NULL)
encode();
;
}
答案:
第1空:p->Lson==NULL && p->Rson==NULL
第2空:'0'
第3空:p->Rson
第4空:top--