中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      計算機畢業論文-動態哈夫曼編碼的改進

      時間:2024-08-23 14:20:57 計算機畢業論文 我要投稿
      • 相關推薦

      計算機畢業論文-動態哈夫曼編碼的改進

      計算機世界月刊》1994年7月號所登載的《動態哈夫曼編碼的數據壓縮方法》一文給出了一種實時性較強的數據壓縮方法,該方法的最大特點是不需預先對原始數據進行一遍掃描以建立哈夫曼樹,而改為以動態變化的哈夫曼樹對數據編碼。
      該文所附的動態哈夫曼編碼數據壓縮與解壓源程序中的UpDate函數是動態修改哈夫曼樹的關鍵部分,該函數對動態哈夫曼樹的一種可能情況無法正確修改,針對這一點,本文附上對該函數的一個修正定義,以使該壓縮與解壓程序更加完善。
      以下就舉例說明原UpDate函數無法正確修改的一種哈夫曼樹。例如若要壓縮“TThhis”字符串,則在壓縮完“TTh”之后的動態哈夫曼樹為圖所示(設根結點序號為1000):
      @@04A07700.GIF;圖 壓縮完“TTh”之后的動態哈夫曼樹@@
      此時若再將字符h進行壓縮編碼,則在輸出h的編碼“01”后需調整哈夫曼樹,以997號葉結點為當前結點,則與當前結點具有同樣重量的且序號最大的結點為998號結點,而該結點是997號結點的父結點,對二者按原文所提供的UpDate函數進行交換,則將導致998號結點變成葉結點,996號結點變成997號結點的左孩子,997號結點則既為自己的父結點又是自己的右孩子,這樣在對后繼字符i進行壓縮編碼時,首先就無法輸出996號空結點的編碼了,此時壓縮程序陷入死循環。
      顯然這時可以簡單地將998和997號結點的重量加1,然后以998號結點的父結點為當前結點進行調整,根據這種思想對原文提供的UpDate函數進行修正所得新的UpDate函數附后。
      void UpDate(struct Node *Temp)
      {
      struct Node * Tempa, * Tempc, * Pointer;
      struct LeafNode *p,*q,*b;
      unsigned char Letter;
      while(Temp!=Root)
      {
      if(Temp->Weight)
      {
      P=Weight;
      while(p->Next->CharNode->Weight !=Temp->Weight)
      p=p->Next;
      if(Temp->Front!=NULL)
      {
      Tempa=Temp;
      while(Temp->Front !=NULL)
      Temp=Temp->Front;
      if(Temp==Tempa->Parent)
      {
      Tempa->Weight++;
      Tempa->After=Tempa->Front=NULL;
      Temp->After=NULL;
      InsertWeight(Tempa);
      }
      else
      {
      Pointer=Temp->LeftChild;
      if(Pointer !=NULL)
      Pointer->Parent=Tempa;
      Temp->LeftChild=Tempa->LeftChild;
      if(Temp->LeftChild !=NULL)
      Temp->LeftChild->Parent=Temp;
      Tempa->LeftChild=Pointer;
      Pointer=Temp->RightChild;
      if(Pointer !=NULL)
      Pointer->Parent=Tempa;
      Temp->RightChild=Tempa->RightChild;
      if(Temp->RightChild !=NULL)
      Temp->RightChild->Parent=Temp;
      Tempa->RightChild=Pointer;
      Letter=Temp->Letter;
      Temp->Letter=Tempa->Letter;
      Tempa->Letter=Letter;
      if((Tempa->LeftChild==NULL)&&(Tempa->RightChild==NULL)
      {
      b=leaf;
      while(b!=NULL)
      {
      if(b->CharNode==Temp)
      {
      b->CharNode=Tempa;
      break;
      }
      else b=b->Next;
      }
      }
      if((Temp->LeftChild==NULL)&&(Temp->RightChild++NULL))
      {
      b=Leaf;
      while(b!=NULL)
      {
      if(b->CharNode==Tempa)
      {
      b->CharNode=Temp;
      break;
      }
      else b=b->Next;
      }
      }
      }
      }
      p->Next->CharNode=Temp->After;
      if(Temp->After==NULL)
      {
      q=p->Next;
      p->Next=q->Next;
      free(q);
      }
      else Temp->After->Front=NULL;
      }
      Temp->Weight++;
      Temp->After=Temp->Front=NULL;
      InsertWeight(Temp);
      Temp=Temp->Parent;
      }
      }
       

      【計算機畢業論文-動態哈夫曼編碼的改進】相關文章:

      動態哈夫曼編碼的改進03-18

      漢字的動態編碼與顯示方案03-18

      針對硬件實現的H.264視頻編碼算法改進03-18

      2.4Kbps MELP低速率語音編碼技術研究與改進03-30

      Tunstall編碼與自適應編碼算法03-07

      計算機畢業論文03-26

      計算機的畢業論文06-24

      計算機畢業論文05-17

      計算機畢業論文-計算機漫話12-02

      主站蜘蛛池模板: 久久老子午夜精品无码| 久久久久无码精品国| 亚洲中文字幕有综合久久| 男人的av一区二区资源| 韩国主播av福利一区二区| 真人在线射美女视频在线观看| 国产女同一区二区在线| 99久久综合狠狠综合久久一区| 国产精品女丝袜白丝袜| 国产熟女精品一区二区三区| 女同性恋精品一区二区三区| 偷拍视频网站一区二区| 日本精品免费一区二区三区| 亚洲第一区无码专区| 天堂Av无码Av一区二区三区| 中文字幕国产精品中文字幕| 国产精品毛片99久久久久| 女同av在线观看网站| 日本一区二区三区中文字幕视频| 久久精品视频中文字幕无码 | 亚洲一区二区国产日韩| 日韩精品成人一区二区三区久久久| 中文字幕亚洲无线码a| 国产乱人伦AⅤ在线麻豆A| 国产精品毛片一区二区在线看| 亚洲青青草视频免费观看| 国产chinese在线视频| 久久久久久一本大道无码| 新建县| 三级黄色片一区二区三区| 国产欧美日韩图片一区二区| 亚洲黄片高清在线观看| 欧洲国产精品无码专区影院| 人妻无码∧V一区二区| 国产一区二区三区亚洲天堂| 国产毛片A啊久久久久| 国产亚洲AV天天夜夜无码| 无码高潮少妇毛多水多水免费| 老熟女熟妇嗷嗷叫91| 国产精品久久一区性色a| 久久久精品国产视频在线|