毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

赫夫曼编译码器-数据结构课程设计 第2页

更新时间:2007-10-20:  来源:毕业论文

scanf("%c",&p->c);
         while(getchar()!='\n')
         continue;
         puts("请输入该字符的权值:");
         scanf("%d",&p->w);
         while(getchar()!='\n')
         continue;

         p->plink=NULL;
             p->rlink=NULL;
             p->llink=NULL;
         num[i]=p;
     }

     for(i=0;i<n-1;i++)  //(递增)排序
     {
         for(j=i+1;j<n;j++)
      {
         if(num[i]->w>num[j]->w)
         {
             tmp=num[i];
            num[i]=num[j];
            num[j]=tmp;
         }
      }
     }
     /*******************************开始建立树***********************/
     num[n]=NULL;    //结束标志
     k=n;
     while(num[1]!=NULL)
     {
         p=(struct node *)malloc(sizeof(struct node));
         p1=num[0];
         p2=num[1];
         p->llink=p1;
         p->rlink=p2;
         p->plink=NULL;
         p1->plink=p;
         p2->plink=p;
         p->w=p1->w+p2->w;

         for(i=1;i<k;i++)
         {
            num[i]=num[i+1];
         }

         k--;
         num[0]=p;
         for(i=0;i<k-1;i++)  //排序
             {
                 for(j=i+1;j<k;j++)
              {
                 if(num[i]->w>num[j]->w)
                 {
                     tmp=num[i];
                    num[i]=num[j];
                    num[j]=tmp;
                 }
              }
             }
     }

     root=num[0];
     /*建立完毕*/
     /*写入文件,前序*/
     if((fp=fopen("c:\\hfmtree.wxl","wb"))==NULL)
     {
             puts("文件打开错误!");
         getchar();
         exit(0);
     }
     setcode(root);
     go(root);
     fclose(fp);
}
void setcode(struct node *p)
{
     if(p->llink==NULL&&p->rlink==NULL)
     {
         tmpcode[t]='\0';
         strcpy(p->code,tmpcode);
     }
     else
     {
         tmpcode[t++]='0';
             setcode(p->llink);
         t--;
         tmpcode[t++]='1';
         setcode(p->rlink);
         t--;
     }
}

 

void go(struct node *p)
{

     if(p->llink==NULL&&p->rlink==NULL)
     {
         fputc('(',fp);
         fputc(p->c,fp);
         fputs(p->code,fp);
         fputc(')',fp);
     }

上一页  [1] [2] [3] [4] 下一页

赫夫曼编译码器-数据结构课程设计 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。