亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hafum.txt

?? 這是一個用C語言編寫的哈夫曼編/譯碼器程序
?? TXT
字號:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXLEN 10

typedef struct
{ 
 char elem;
 unsigned int m_weight; 
 unsigned int parent,lchild,rchild; 
}HTNode,HuffmanTree; 

typedef char HuffmanCode; 

typedef struct _Weight
{
 char elem; 
 unsigned int m_weight; 
}Weight; 

void Print_Menu();
int  Initialize(HuffmanTree&, HuffmanCode&);
void HuffmanCoding(HuffmanTree&,HuffmanCode&,Weight,int); 
void Coding(HuffmanTree& HT,HuffmanCode& HC,int n);
void Select(HuffmanTree&,int,int,int); 
void OutputHuffman(HuffmanTree,HuffmanCode,int); 
int  Write_hfmTree_to_file(HuffmanTree,HuffmanCode,int );
int  Encoding(HuffmanTree&,HuffmanCode&);
int  Findchar(HuffmanTree,char,int);
int  Print();
int  Decoding(HuffmanTree,int);

void main() 
{ 
 char cX;
 int n;
 HuffmanTree HT = NULL; 
 HuffmanCode HC = NULL; 
 
 while(1)
 {
  Print_Menu();
  
  scanf(%1s,&cX);
  getchar();
  if(cX == 'Q') 
  {
   printf(Bye!n);
   break;
  }
        
        switch(cX)
  {
  case 'I'  n = Initialize(HT,HC); break;
  case 'E'  n = Encoding(HT,HC); break;
  case 'P'  Print(); break;
  case 'D'  Decoding(HT,n); break;
  case 'T'  OutputHuffman(HT,HC,n); break;
  default   printf(Input Error!); break;
  }
  
 }
 
 
} 

void Print_Menu()
{
 printf(n Huffman Arithmetic Demonstration );
    printf(nI---Initialize     E---Encoding   P---Print);
    printf(nT---Tree printing  D---Decoding   Q---Quit program);
 printf(n                                                       Codz By EvilCat);
    printf(n Huffman Arithmetic Demonstration );
 printf(nPlease choose a menu item and press enter to continue.n);
}

int Initialize(HuffmanTree& HT,HuffmanCode &HC)
{
 Weight w; 
 char c; 
 int i,n;    
 int wei;   
 printf(Please input the value of n  ); 
 scanf(%d,&n); 
 w = (Weight)malloc((n+1)  sizeof(Weight)); 
 for(i = 1; i = n; i++)
 { 
  printf(Input the element); 
  scanf(%1s,&c); 
  printf(Input its weight);
  scanf(%d,&wei);
  w[i].elem = c; 
  w[i].m_weight = wei; 
 } 
 
 HuffmanCoding(HT,HC,w,n);
 Write_hfmTree_to_file(HT,HC,n);
 return n;
}

void HuffmanCoding(HuffmanTree &HT,HuffmanCode& HC,Weight w, int n)
{
 int m,i,s1,s2;
 if(n = 1) return;
 m = 2  n - 1;
 HT = (HuffmanTree)malloc((m+1)  sizeof(HTNode));
 for( i = 1; i = n; ++i)
 {
  HT[i].elem = w[i].elem;
  HT[i].m_weight = w[i].m_weight;
  HT[i].parent = 0;
  HT[i].lchild = 0;
  HT[i].rchild = 0;
 }
 for(; i = m; ++i)
 {
  HT[i].elem = '0';
  HT[i].m_weight = 0;
  HT[i].parent = 0;
  HT[i].lchild = 0;
  HT[i].rchild = 0;
 }
 for( i = n + 1; i = m; ++i)
 {
  Select(HT,i-1,&s1,&s2);
  HT[s1].parent = i; HT[s2].parent = i;
  HT[i].lchild = s1; HT[i].rchild = s2;
  HT[i].m_weight = HT[s1].m_weight + HT[s2].m_weight;
 }
 Coding(HT,HC,n);
 
}

void Coding(HuffmanTree& HT,HuffmanCode& HC,int n)
{
 int i,start,c,f; 
 char cd;
 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 == (unsigned int)c) cd[--start]='0'; 
   else cd[--start]='1'; 
  } 
  
  HC[i]=(char )malloc((n-start)sizeof(char));
  strcpy(HC[i],&cd[start]); 
 } 
 free(cd);
}

void Select(HuffmanTree& HT,int n,int s1,int s2) 
{ 
 int i; 
 (s1) = (s2) = 0; 
 for(i = 1;i = n;i++)
 { 
  if(HT[i].m_weight  HT[(s2)].m_weight&&HT[i].parent == 0&&(s2)!=0)
  { 
   if(HT[i].m_weightHT[(s1)].m_weight)
   { 
    (s2) = (s1); 
    (s1) = i; 
   } 
   else (s2) = i; 
   
  } 
  
  if(((s1) == 0(s2) == 0)&&HT[i].parent == 0)
  { 
   if((s1) == 0) (s1) = i; 
   else if((s2) == 0)
   { 
    if(HT[i].m_weightHT[(s1)].m_weight)
    { 
     (s2) = (s1); 
     (s1) = i; 
    } 
    else (s2) = i; 
   } 
  }  
 } 
 
 if((s1)  (s2))
 { 
  i = (s1); 
  (s1) = (s2); 
  (s2) = i; 
 } 
 return; 
} 

void OutputHuffman(HuffmanTree HT,HuffmanCode HC,int n) 
{ 
 FILE fp;
    fp = fopen( TreePrint.txt, w );
 if(!HT&&!HC)
 {
  printf(Please Initialize First!n);
  return;
 }
 
 int i; 
 printf(Number--Element--Weight--Parent--Lchild--Rchildn);
 fprintf(fp,Number--Element--Weight--Parent--Lchild--Rchildn);
 for(i = 1;i = 2  n - 1;i++) 
 {
  printf(%3d%8c%8d%8u%8u%8un,i,HT[i].elem,HT[i].m_weight,HT[i].parent,HT[i].lchild,HT[i].rchild); 
  fprintf(fp,%3d%8c%8d%8u%8u%8un,i,HT[i].elem,HT[i].m_weight,HT[i].parent,HT[i].lchild,HT[i].rchild);
 }
 fclose(fp);
}  

int Write_hfmTree_to_file(HuffmanTree HT,HuffmanCode HC,int n)
{
    FILE fp;
    fp = fopen( hfmTree.txt, w );
 fprintf(fp,%dn,n);
 for( int i = 1; i  2n; i++)
 {
  fprintf( fp,
   %c %u %u %u %un, 
   HT[i].elem, HT[i].m_weight, HT[i].parent, HT[i].lchild, HT[i].rchild );
 }
    fclose( fp );
 return 1;
}

int Encoding(HuffmanTree& HT,HuffmanCode& HC)
{
 int m,n,c;
 char x;
 FILE tfp,sfp,dfp;
    
 if(!HT&&!HC)
 {
  if((tfp = fopen( hfmTree.txt, r )) == NULL)
  {
   printf(cannot open hfmTree.txtn);
   return 0;
  }
  
  fscanf(tfp,%dn,&n);
  m = 2  n - 1; 
  HT = (HuffmanTree)malloc((m+1)sizeof(HTNode));
  for(int i = 1; i  2  n; i++)
  {
   fscanf(tfp,
    %c %u %u %u %un, 
    &HT[i].elem, &HT[i].m_weight, &HT[i].parent, &HT[i].lchild, &HT[i].rchild );
  }
  
  Coding(HT,HC,n);
  fclose(tfp);
 }
 
 if((tfp = fopen( hfmTree.txt, r )) == NULL)
 {
  printf(cannot open hfmTree.txtn);
  return 0;
 }
 
 fscanf(tfp,%dn,&n);
 
 if((sfp = fopen( ToBeTran.txt, r )) == NULL)
 {
  printf(cannot open ToBeTran.txtn);
  return 0;
 }
 dfp = fopen( CodeFile.txt, w );
 
 while((x = fgetc(sfp)) != -1)
 {
  c = Findchar(HT,x,n);
  fputs(HC[c],dfp);
  
 }
 
    fclose(tfp);
 fclose(sfp);
 fclose(dfp);
 return n;
}

int Findchar(HuffmanTree HT,char x,int n)
{
 int i = 1;
 while( x != HT[i].elem && i = n )
 {
  i++;
 }
 if( i  n ) return 0;
 else return i;
}

int Print()
{
 char x;
 int counter = 0;
 FILE sfp,dfp;
 
 if((sfp = fopen( CodeFile.txt, r )) == NULL)
 {
  printf(cannot open CodeFile.txtn);
  return 0;
 }
 dfp = fopen( CodePrin.txt, w );
    
 while((x = fgetc(sfp)) != -1)
 {
  
  if(counter != 0 && counter % MAXLEN == 0) 
  {
   printf(n);
   fputc('n',dfp);
  }
  printf(%c,x);
  fputc(x,dfp);
  counter++;
  
 }
 
 fclose(sfp);
 fclose(dfp);
 return 1;
}

int Decoding(HuffmanTree HT,int n)
{
 int t = 2  n - 1;
 char x;
 FILE sfp,dfp;
 
 if(!HT)
 {
  printf(Please Initialize First!n);
  return 0;
 }
    
 if((sfp = fopen( CodeFile.txt, r )) == NULL)
 {
  printf(cannot open CodeFile.txtn);
  return 0;
 }
 dfp = fopen( TextFile.txt, w );
 
 while(1)
 {
  if(HT[t].lchild!=0)
  {
   x = fgetc(sfp);
   if(x == '0')
    t = HT[t].lchild;
   else if(x == '1') 
    t = HT[t].rchild;
   else break;
  }
  else 
  {
   printf(%c,HT[t].elem);
   fputc(HT[t].elem,dfp);
   t = 2  n-1;
  }
 }
 fclose(sfp);
 fclose(dfp);
 return 1;
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合97婷婷 | 高清成人在线观看| 成人中文字幕在线| 欧美日韩一级大片网址| 国产精品午夜在线| 日av在线不卡| 欧美日本一区二区| 中文字幕一区不卡| 国产69精品久久久久777| 欧美日韩黄视频| 亚洲人成7777| 国产成人超碰人人澡人人澡| 欧美一级高清大全免费观看| 亚洲午夜国产一区99re久久| 成人三级伦理片| 国产偷国产偷亚洲高清人白洁| 日韩综合在线视频| 欧美日韩一区二区电影| 亚洲色图丝袜美腿| 成年人网站91| 国产精品午夜免费| 懂色av中文一区二区三区| 精品国产一区a| 玖玖九九国产精品| 欧美成人艳星乳罩| 美女看a上一区| 欧美一区二区久久久| 亚洲成人免费看| 欧美日韩午夜在线| 亚洲国产精品久久一线不卡| 色综合av在线| 亚洲国产精品视频| 欧美精品久久天天躁| 亚洲a一区二区| 欧美一区日韩一区| 麻豆精品国产91久久久久久| 日韩欧美国产小视频| 看国产成人h片视频| 精品成人免费观看| 国产成人精品aa毛片| 中文子幕无线码一区tr| 成人av电影在线播放| 最近中文字幕一区二区三区| 色综合久久久网| 亚洲福中文字幕伊人影院| 欧美三区在线观看| 蜜臀久久99精品久久久画质超高清 | 亚洲综合免费观看高清在线观看 | 国产一区二区三区美女| 久久美女高清视频| 99国产麻豆精品| 亚洲国产精品视频| 精品国产乱码久久久久久牛牛 | 国产高清精品久久久久| 国产欧美日韩在线| 91免费视频观看| 婷婷久久综合九色综合伊人色| 在线综合+亚洲+欧美中文字幕| 久久激情综合网| 国产精品精品国产色婷婷| 欧美在线一区二区三区| 青青草97国产精品免费观看无弹窗版| 精品sm捆绑视频| 91色乱码一区二区三区| 日韩国产精品91| 国产亚洲精品免费| 在线观看日韩国产| 激情综合色播五月| 亚洲欧美偷拍三级| 欧美肥妇毛茸茸| 成人av在线影院| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美激情艳妇裸体舞| 欧美在线综合视频| 国产精品亚洲视频| 亚洲成av人在线观看| 国产色产综合产在线视频| 欧美精品三级在线观看| 国产成人综合精品三级| 亚洲成av人在线观看| 国产精品系列在线| 日韩欧美中文字幕精品| 色av综合在线| 国产福利一区在线| 亚洲成人av资源| 亚洲另类在线一区| 欧美国产禁国产网站cc| 91麻豆精品国产自产在线观看一区| 成人午夜短视频| 免费观看30秒视频久久| 亚洲午夜久久久久久久久电影院| 亚洲国产高清在线| 2020国产精品自拍| 日韩午夜精品视频| 欧美日韩精品是欧美日韩精品| 99久久综合狠狠综合久久| 精品一区二区三区av| 亚洲制服丝袜av| 亚洲色图第一区| 中文字幕成人在线观看| 久久综合九色综合97婷婷| 日韩无一区二区| 88在线观看91蜜桃国自产| 91极品视觉盛宴| 91色在线porny| jiyouzz国产精品久久| 国产成人午夜精品5599| 精油按摩中文字幕久久| 青青草国产精品亚洲专区无| 亚洲.国产.中文慕字在线| 亚洲精品日韩一| 一区二区三区高清在线| 亚洲男同1069视频| 一区二区三区四区乱视频| 亚洲人成网站精品片在线观看 | 亚洲欧美另类久久久精品| 中文字幕不卡在线观看| 国产午夜精品久久| 国产目拍亚洲精品99久久精品| 久久精品人人做人人综合| 精品成人私密视频| 日本一区二区三区久久久久久久久不| 久久综合九色综合97婷婷| 久久精品男人天堂av| 中文字幕av资源一区| 亚洲卡通动漫在线| 亚洲成人免费在线| 日韩不卡在线观看日韩不卡视频| 国产精品一区二区男女羞羞无遮挡| 免费观看成人av| 韩国三级电影一区二区| 盗摄精品av一区二区三区| 99综合电影在线视频| 欧美无乱码久久久免费午夜一区 | 成人伦理片在线| 99久久精品久久久久久清纯| 91片在线免费观看| 欧美区在线观看| 国产性做久久久久久| 亚洲欧洲日本在线| 亚洲综合清纯丝袜自拍| 久久国产生活片100| 国产成人精品影院| 欧美午夜一区二区三区免费大片| 日韩午夜激情av| 一区在线观看视频| 青青草原综合久久大伊人精品| 激情综合色综合久久综合| 91一区二区在线观看| 欧美人xxxx| 国产精品卡一卡二| 日韩经典中文字幕一区| 成人美女视频在线观看18| 欧美精品免费视频| ...xxx性欧美| 国产最新精品精品你懂的| 色综合久久久久综合体| 26uuu欧美| 亚洲一区av在线| 成人深夜福利app| 日韩免费性生活视频播放| 亚洲视频一区二区在线| 黑人巨大精品欧美一区| 91久久精品网| 国产欧美一二三区| 麻豆精品视频在线| 在线观看免费视频综合| 国产视频一区在线观看| 日韩中文字幕91| 97精品国产97久久久久久久久久久久| 日韩三级.com| 日韩中文字幕区一区有砖一区| www.欧美日韩| 久久久精品天堂| 毛片av一区二区三区| 欧美亚洲综合网| 最好看的中文字幕久久| 国产精品一区免费视频| 91精品午夜视频| 亚洲国产日韩a在线播放性色| 99视频一区二区三区| 久久免费的精品国产v∧| 日本麻豆一区二区三区视频| 色哟哟欧美精品| 国产精品色呦呦| av中文一区二区三区| 国产视频一区二区在线观看| 精品在线你懂的| 欧美一区二区国产| 日韩二区在线观看| 欧美人与z0zoxxxx视频| 亚洲成精国产精品女| 91搞黄在线观看| 一区二区在线观看av| 波多野结衣在线一区| 国产精品网站在线| 99在线精品视频| 一区二区三区久久久| 日本道免费精品一区二区三区| 亚洲另类春色国产|