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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 便譯碼器.txt

?? 用c語言實現的數據結構中haffmen編譯碼的算法。
?? TXT
字號:
一、問題描述: 
利用哈夫曼編碼進行信息通信可以大大提高信道利用率,縮短信息傳輸時間,降低傳輸成本。但是,這要求在發送端通過一個編碼系統對待傳數據預先編碼,在接收端將傳來的數據進行譯碼(復原)。對于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個完整的編/譯碼系統。試為這樣的信息收發站寫一個哈夫曼碼的編/譯碼系統。 

二、基本要求: 
1、I:初始化(Initialization),從終端讀入字符集大小n,以及n個字符和n個權值,建立哈夫曼樹,并將它存于文件hfmTree中。 
2、E:編碼(Encoding),利用已建好的哈夫曼樹(如不在內存,則從文件hfmTree中讀人),對文件ToBeTran中的正文進行編碼,然后將結果存入文件CodeFile中。 
3、D:譯碼(Decoding),利用已建好的哈夫曼樹將文件CodeFile中的代碼進行譯碼,結果存入文件TextFile中。 
4、P:輸出代碼文件(Print),將文件CodeFile以緊湊格式顯示在終端上,每行50個代碼。同時將此字符形式的編碼文件寫入文件CodePrin中。 
5、T:輸出哈夫曼樹(TreePrinting),將已在內存中的哈夫曼樹以直觀的方式(樹或凹人表形式)顯示在終端上,同時將此字符形式的哈夫曼樹寫入文件TreePrint中。 

三、測試數據:] 
用下表給出的字符集和頻度的實際統計數據建立哈夫曼樹,并實現以下報文的編碼和譯碼:“THIS PROGRAM IS MY FAVORITE”。 

字符 A B C D E F G H I J K L M 
頻度 186 64 13 22 32 103 21 15 47 1 5 32 20 20 

字符 N O P Q R S T U V W X Y Z 
頻度 57 63 15 1 48 51 80 23 8 18 1 16 1 

四、實現提示: 
1、哈夫曼編碼采用一個字符串數組存儲。 
2、用戶界面可以設計為“菜單”方式:顯示上述功能符號,再加上“Q”,表示退出運行Quit。請用戶鍵入一個選擇功能符。此功能執行完畢后再顯示此菜單,直至某次用戶選擇了“Q”為止。 
3、在程序的一次執行過程中,第一次執行I、D或C命令之后,哈夫曼樹已經在內存了,不必再讀入。每次執行中不一定執行I命令,因為文件hfmTree可能早已建好。 
#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
#include<ctype.h> 
int n; 
struct node{ 
int w; 
int flag; 
char c; 
struct node *plink,*llink,*rlink; 
char code[50]; 

}*num[100],*root; 
FILE *fp; 
char tmpcode[50]; 
int t=0; 

void main(void) 
{ 
int i; 
void settree(void); //建立樹 
void code(void); //對文件編碼 
void decode(void); // 譯碼 
void disp(void); 
root=(struct node*)malloc(sizeof(struct node)); 
puts("*******************哈夫曼編/譯碼器演示******************************"); 

while(1){ 
start: 

puts("1. 初始化 2. 編碼 3. 譯碼 4.顯示編碼表 5. 退出"); 
while(scanf("%d",&i)!=1) 
{ 
while(getchar()!='\n') 
continue; 
puts("輸入錯誤!"); 
puts("請重新輸入!"); 
puts("1. 初始化 2. 編碼 3. 譯碼 4.顯示編碼表 5. 退出"); 
} 
switch (i) 
{ 
case 1: 
settree(); 
break; 
case 2: 
code(); 
break; 
case 3: 
decode(); 
break; 
case 4: 
disp(); 
break; 
case 5: 
exit(0); 
default: 
puts("輸入錯誤!"); 
puts("請重新輸入!"); 
goto start; 
} 
} 
} 
void settree(void) 
{ 
int i,j,k; 
struct node *p1,*p2,*tmp,*p; 
void go(struct node *); 
void setcode(struct node *);//建立每一個字符的編碼 
void printtree(struct node *); 
puts("輸入字符集的大小:"); 
scanf("%d",&n); 
while(getchar()!='\n') 
continue; 

for(i=0;i<n;i++) 
{ 
p=(struct node *)malloc(sizeof(struct node)); 
puts("請輸入一個字符"); 
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); 
} 
else 
{ 

go(p->llink); 
go(p->rlink); 
} 
} 

void code(void) 
{ 
FILE *fp1,*fp2,*fp3; 
char ch1,ch2,c; 
if((fp1=fopen("c:\\hfmtree.wxl","rb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 
if((fp2=fopen("c:\\tobetrans.txt","wb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 
if((fp3=fopen("c:\\codefile.wxl","wb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 

while((ch1=fgetc(fp2))!=EOF) 
{ 
t=0; 


while((ch2=fgetc(fp1))!=EOF) 
{ 
if(ch1==ch2) 
{ 
while((c=fgetc(fp1))!=')') 
{ 
tmpcode[t++]=c; 
} 
tmpcode[t]='\0'; 
fputs(tmpcode,fp3); 
fputc('@',fp3); 
rewind(fp1); 
break; 
} 
} 
} 
fclose(fp1); 
fclose(fp2); 
fclose(fp3); 
} 

void decode(void) 
{ 
FILE *fp1,*fp2,*fp3; 
char ch1,ch2,ch3; 
char temp_3[20]; 
char temp_1[20]; 
int t1,t3; 
if((fp1=fopen("c:\\hfmtree.wxl","rb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 
if((fp2=fopen("c:\\textfile.txt","wb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 
if((fp3=fopen("c:\\codefile.wxl","rb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 

while((ch3=fgetc(fp3))!=EOF) 
{ 
t3=0; 
while(ch3!='@') 
{ 
temp_3[t3++]=ch3; 
ch3=fgetc(fp3); 
} 
temp_3[t3]='\0'; 
while((ch1=fgetc(fp1))!=EOF) 
{ 
if(isalpha(ch1)) 
{ 
ch2=ch1; 
t1=0; 
while((ch1=fgetc(fp1))!=')') 
{ 
temp_1[t1++]=ch1; 
} 
temp_1[t1]='\0'; 

if(strcmp(temp_1,temp_3)==0) 
{ 
fputc(ch2,fp2); 
rewind(fp1); 
break; 
} 
} 
} 
} 
fclose(fp1); 
fclose(fp2); 
fclose(fp3); 
} 


void disp(void) 
{ 
FILE *fp1,*fp2; 
char ch1,ch2; 
char tmp[20]; 
int t; 
if((fp1=fopen("c:\\hfmtree.wxl","rb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 
if((fp2=fopen("c:\\hfmcode.txt","wb"))==NULL) 
{ 
puts("文件打開錯誤!"); 
getchar(); 
exit(0); 
} 
while((ch1=fgetc(fp1))!=EOF) 
{ 
if(ch1=='(') 
{ 
t=0; 
ch1=fgetc(fp1); 
ch2=ch1; 
while((ch1=fgetc(fp1))!=')') 
{ 
tmp[t++]=ch1; 
} 
tmp[t]='\0'; 
printf("%c-----%s\n",ch2,tmp); 
fputc(ch2,fp2); 
fputc('-',fp2); 
fputc('-',fp2); 
fputc('-',fp2); 
fputs(tmp,fp2); 
fputc('\n',fp2); 
} 
} 
fclose(fp1); 
fclose(fp2); 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情六月婷婷综合| 九九视频精品免费| 亚洲一级不卡视频| 午夜免费欧美电影| 99热这里都是精品| 亚洲精品成人在线| 欧美性受xxxx黑人xyx性爽| 在线视频综合导航| 久久久久久97三级| 国产v综合v亚洲欧| 亚洲欧美一区二区三区久本道91 | 国产精品免费网站在线观看| 日韩av电影免费观看高清完整版| 欧美日韩国产综合久久| 亚洲综合一区在线| 欧美日本视频在线| 久久国产精品区| 中文字幕av免费专区久久| 成人夜色视频网站在线观看| 亚洲精品欧美激情| 欧美视频日韩视频| 国产 欧美在线| 亚洲人成影院在线观看| 成人午夜av在线| 国产剧情在线观看一区二区| 日韩国产精品久久久久久亚洲| 亚洲日本在线天堂| 午夜欧美电影在线观看| 亚洲成人一区在线| 亚洲国产精品v| 国产老妇另类xxxxx| 一区二区三区在线影院| 中文字幕精品在线不卡| 丝袜脚交一区二区| 日本韩国一区二区三区视频| 成人avav影音| 精品免费99久久| 久久99精品一区二区三区三区| 在线不卡中文字幕| 青青草国产成人99久久| 制服丝袜成人动漫| 日本强好片久久久久久aaa| 日韩欧美国产wwwww| 国内精品久久久久影院薰衣草| 国产精品久久久久影院老司| 久久精品一区二区三区四区| 国产精品短视频| 欧美va亚洲va国产综合| 日韩欧美亚洲国产另类| 精品久久久影院| 亚洲一区免费观看| 欧美亚洲免费在线一区| **性色生活片久久毛片| 在线精品视频一区二区| 欧美丝袜第三区| 亚洲bt欧美bt精品777| 91尤物视频在线观看| 久久久久久**毛片大全| 在线成人av影院| 亚洲线精品一区二区三区八戒| av中文字幕不卡| 国产精品美女久久久久高潮| 成人免费视频一区二区| 中文字幕欧美国产| 91在线免费播放| 亚洲成a天堂v人片| 精品久久久久av影院| 高清shemale亚洲人妖| 亚洲日本韩国一区| 极品销魂美女一区二区三区| 懂色一区二区三区免费观看| 欧美久久久久免费| 国产日韩欧美a| 午夜精品福利在线| 91精品国产综合久久久蜜臀粉嫩| 成人免费高清视频| 午夜精品免费在线观看| 26uuu色噜噜精品一区| 91香蕉视频在线| 另类综合日韩欧美亚洲| 亚洲色图都市小说| 久久综合色综合88| 欧美色大人视频| 国产成人在线视频网站| 热久久免费视频| 亚洲一区免费观看| 国产精品美日韩| 欧美岛国在线观看| 91高清视频免费看| 国产99一区视频免费| 一区二区三区鲁丝不卡| 国产女人18毛片水真多成人如厕| 在线综合+亚洲+欧美中文字幕| 99精品国产91久久久久久| 国产精品一区二区你懂的| 视频在线观看一区二区三区| 自拍av一区二区三区| 精品动漫一区二区三区在线观看| 欧美亚洲精品一区| youjizz国产精品| 激情综合网最新| 日韩精品一级中文字幕精品视频免费观看 | 欧美精品丝袜中出| 99久久99久久精品国产片果冻| 99久久综合99久久综合网站| 蜜桃av一区二区| 美国十次综合导航| 亚洲一区免费视频| 亚洲免费伊人电影| 成人欧美一区二区三区黑人麻豆 | 成人激情黄色小说| 国产精品亚洲а∨天堂免在线| 日本欧美一区二区三区乱码| 天天综合网 天天综合色| 亚洲国产精品影院| 午夜在线成人av| 亚洲第一激情av| 亚洲国产精品久久久久秋霞影院| 亚洲免费成人av| 亚洲影院理伦片| 国产乱子轮精品视频| 亚洲精选免费视频| 欧美日本精品一区二区三区| 欧美午夜精品免费| 91麻豆精品国产自产在线| 欧美一区二区三区精品| 欧美精品aⅴ在线视频| 8v天堂国产在线一区二区| 69堂国产成人免费视频| 日韩欧美一区二区久久婷婷| 日韩三级.com| 久久一日本道色综合| 国产午夜精品福利| 18成人在线观看| 亚洲成人免费在线| 久久激情五月激情| 国产宾馆实践打屁股91| 99精品视频一区二区| 欧美色视频一区| 91精品麻豆日日躁夜夜躁| 26uuu久久综合| 亚洲欧美综合在线精品| 亚洲一区二区av在线| 午夜久久久久久| 久久99国产精品久久99果冻传媒| 国产高清精品网站| 久久综合九色综合97_久久久| 国产日韩影视精品| 成人开心网精品视频| 色呦呦日韩精品| 日韩午夜小视频| 中文一区二区完整视频在线观看| 中文字幕欧美一区| 一区二区三区国产精华| 日本在线播放一区二区三区| 久久99精品久久久久久久久久久久| 成人少妇影院yyyy| 91精品国产综合久久精品app| 久久色.com| 亚洲一区在线看| 国产另类ts人妖一区二区| 色8久久精品久久久久久蜜| 678五月天丁香亚洲综合网| 国产精品色眯眯| 蜜桃视频第一区免费观看| 91在线视频免费观看| 精品国产凹凸成av人导航| 亚洲人午夜精品天堂一二香蕉| 日韩电影在线免费看| 成人视屏免费看| 欧美精品一区二区三区很污很色的| 亚洲日本欧美天堂| 国产另类ts人妖一区二区| 欧美二区三区91| 亚洲三级久久久| 国产毛片精品一区| 欧美群妇大交群中文字幕| 国产精品麻豆久久久| 日产国产高清一区二区三区| 91在线一区二区| 国产视频一区二区在线观看| 老司机免费视频一区二区 | 一区二区在线观看av| 国产一区二区三区电影在线观看| 色8久久精品久久久久久蜜 | 国模大尺度一区二区三区| 欧美在线色视频| 国产精品久久久久婷婷| 精品一区二区av| 91麻豆精品国产综合久久久久久 | 免费av网站大全久久| 欧美三级一区二区| 亚洲人成网站影音先锋播放| 99精品桃花视频在线观看| 国产三区在线成人av| 精品一区二区三区免费毛片爱| 欧美视频中文字幕| 一区二区三区四区亚洲| 色婷婷综合五月| 一区二区在线看|