欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      時間:2019-05-14 04:31:36下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計》。

      第一篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      1.赫夫曼編碼器

      設(shè)計一個利用赫夫曼算法的編碼和譯碼系統(tǒng),重復(fù)地顯示并處理以下項目,直到選擇退出為止。要求:

      1)將權(quán)值數(shù)據(jù)存放在數(shù)據(jù)文件(文件名為data.txt,位于執(zhí)行程序的當前目錄中)

      2)初始化:鍵盤輸入字符集大小26、26個字符和26個權(quán)值(統(tǒng)計一篇英文文章中26個字母),建立哈夫曼樹;

      3)編碼:利用建好的哈夫曼樹生成哈夫曼編碼;

      4)輸出編碼(首先實現(xiàn)屏幕輸出,然后實現(xiàn)文件輸出); 5)界面優(yōu)化設(shè)計。

      代碼如下:

      #include #include #include #include #define N 200

      typedef struct HTNode

      //結(jié)構(gòu)體 { int Weight;

      char ch;int Parent,Lchild,Rchild;}HTNode;typedef char * * HCode;

      void Save(int n,HTNode *HT)

      //把權(quán)值保存到文件 {

      FILE * fp;

      int i;

      if((fp=fopen(“data.txt”,“wb”))==NULL)

      {

      printf(“cannot open filen”);

      return;

      }

      for(i=0;i

      if(fwrite(&HT[i].Weight,sizeof(struct HTNode),1,fp)!=1)

      printf(“file write errorn”);

      fclose(fp);

      system(“cls”);

      printf(“保存成功!”);

      }

      void Create_H(int n,int m,HTNode *HT)

      //建立赫夫曼樹,進行編碼 {

      int w,k,j;char c;for(k=1;k<=m;k++){

      if(k<=n)

      {

      printf(“n請輸入權(quán)值和字符(用空格隔開): ”);

      scanf(“%d”,&w);

      scanf(“ %c”,&c);HT[k].ch=c;

      HT[k].Weight=w;

      }

      else HT[k].Weight=0;

      HT[k].Parent=HT[k].Lchild=HT[k].Rchild=0;}

      int p1,p2,w1,w2;

      for(k=n+1;k<=m;k++){

      p1=0;p2=0;

      w1=32767;w2=32767;

      for(j=1;j<=k-1;j++)

      {

      if(HT[j].Parent==0)

      {

      if(HT[j].Weight

      {

      w2=w1;p2=p1;

      w1=HT[j].Weight;

      p1=j;

      }

      else if(HT[j].Weight

      {

      w2=HT[j].Weight;

      p2=j;

      }

      }

      } HT[k].Lchild=p1;HT[k].Rchild=p2;HT[k].Weight=HT[p1].Weight+HT[p2].Weight;

      HT[p1].Parent=k;HT[p2].Parent=k;

      } printf(“輸入成功!”);}

      void Coding_H(int n,HTNode *HT)

      //對結(jié)點進行譯碼 { int k,sp,fp,p;char *cd;HCode HC;

      HC=(HCode)malloc((n+1)*sizeof(char *));

      cd=(char *)malloc(n*sizeof(char));cd[n-1]='