24小时热门版块排行榜    

查看: 500  |  回复: 2

-谁主沉浮

新虫 (小有名气)

[求助] 哈夫曼树纠错!急 哪里运行出问题。。。

哈夫曼树纠错!急 哪里运行出问题。。。
CODE:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#define MAX 100
typedef struct
{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;
typedef char **HuffmanCode;
void Select(HuffmanTree HT,int n,int &s1,int &s2)
{
    int small1,small2;
    s1=s2=0;small1=small2=MAX;
for(int i=1;i<=n;++i)
{
  if(HT[i].parent==0)
  {
   if(HT[i].weight<small1)
   {
    small2=small1;
    small1=HT[i].weight;
    s2=s1; s1=i;
   }
   else
    if(HT[i].weight<small2)
    {
     small2=HT[i].weight;
     s2=i;
    }
  }
}
}
void HuffmanCoding(HuffmanTree &HT,HuffmanCode &HC,int*w,int n)
{
int m,s1,s2,i,c,start,f;
char *cd;
HuffmanTree p;
if(n<=1)
  return;
m=2*n-1;
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));
for(p=HT+1,i=1;i<=n;++i,++p,++w)
{
  p->weight=*w;
  p->lchild=0;
  p->parent=0;
  p->rchild=0;
}
for(;i<=m;++i,++p)
{
  p->weight=0;
  p->lchild=0;
  p->parent=0;
  p->rchild=0;
}
for(i=n+1;i<=m;++i)
{
  Select(HT,i-1,s1,s2);
  printf("%d  %d\n",s1,s2);
  HT[s1].parent=i;
  HT[s2].parent=i;
  HT[i].lchild=s1;
  HT[i].rchild=s2;
  HT[i].weight=HT[s1].weight+HT[s2].weight;
}
HC=(HuffmanCode)malloc((n+1)*sizeof(char*));
cd=(char*)malloc(n*sizeof(char));
cd[n-1]='\0';
for(i=1;i<=n;++i)
{
  start=n-1;
  for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent)
  {
   if(HT[f].lchild==c)
    cd[--start]='0';
   else
    cd[--start]='1';
   HC[i]=(char*)malloc((n-start)*sizeof(char));
   strcpy(HC[i],&cd[start]);
  }
  free(cd);
}
}
void PrintCode(HuffmanCode HC,int n,char *ch)
{
for(int i=1;i<=n;i++)
{
  printf("字符%c的霍夫曼编码:",ch[i-1]);
  printf("%s\n",HC[i]);
}
}
void main()
{
HuffmanTree HT;
HuffmanCode HC;
int w[MAX],i,n;
char ch[MAX];
printf("请输入字符个数:\n");
scanf("%d",&n);
printf("请输入字符:\n");
for(i=0;i<n;i++)
  scanf("%c",&ch[i]);
printf("请输入字符对应权值:\n");
for(i=0;i<n;i++)
  scanf("%d",&w[i]);
HuffmanCoding(HT,HC,w,n);
PrintCode(HC,n,ch);
}

[ Last edited by jjdg on 2013-5-11 at 01:18 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shyboylpf

新虫 (初入文坛)

jjdg: 编辑内容 2013-05-11 01:19
内容已删除
2楼2013-05-09 20:18:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

-谁主沉浮

新虫 (小有名气)

引用回帖:
2楼: Originally posted by shyboylpf at 2013-05-09 20:18:44
为毛还能加表情。。。

不是的啊,明明是括号,系统自动换成表情
3楼2013-05-10 12:15:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 -谁主沉浮 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +3 wangyl_123 2026-10-10 6/300 2026-10-11 15:04 by Abin0406
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[教师之家] 课题组会帮你通过考核么? +3 好运来~9527 2026-10-10 5/250 2026-10-11 09:00 by 好运来~9527
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
[有机交流] 各位大佬,路线设计求助 +6 zapen 2026-10-08 8/400 2026-10-10 15:59 by zapen
[基金申请] 入职后第一次管课题组的专利缴费,对账才发现官费比别人多掏了一倍 +5 13108017953 2026-10-08 5/250 2026-10-10 11:15 by wdwd123
[有机交流] 我应该选哪条合成路线让实验成功率高一些? +5 jing816y 2026-10-08 9/450 2026-10-10 09:05 by zapen
信息提示
请填处理意见