多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Huffman樹的應用 (數據結構)

Huffman樹的應用 (數據結構)

來源:程序員人生   發布時間:2014-12-08 08:19:37 閱讀次數:3574次

Huffman樹的利用

1、先選擇1篇文章

2、然后統計字符個數

3、對個數不為0字符的進行編碼

4、輸出碼文

5、進行譯碼



上機代碼:


/************************************************************************* > File Name: Huffman樹的利用.cpp > Author: zzuspy > Mail: zzuspy@qq.com > Created Time: 2014年12月3日 14:30 ************************************************************************/ #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cstdlib> #include <cmath> #include <stack> #include <queue> #define LL long long #define max3(a,b,c) max(a,max(b,c)) #define min3(a,b,c) min(a,min(b,c)) using namespace std; typedef struct { int weight; int parent, lchild, rchild; }HTNode, *HuffmanTree; typedef char * * HuffmanCode; int s1, s2; void Select(HuffmanTree &HT, int n) { int i, min; for(int i=1; i<=n; i++) { if(HT[i].parent==0) { min = i; break; } } for(i=1; i<=n; i++) { if(HT[i].weight<HT[min].weight && HT[i].parent == 0)min = i; } s1 = min; for(int i=1; i<=n; i++) { if(HT[i].parent==0 && i!=s1) { min = i; break; } } for(int i=1; i<=n; i++) { if(HT[i].parent == 0 && i!=s1 && HT[i].weight<HT[min].weight && HT[i].weight>=HT[s1].weight) min=i; } s2 = min; } void HuffmanCoding(HuffmanTree &HT, HuffmanCode &HC, int *w, int n) { if(n<=1) return; int m = 2 * n - 1, i; HuffmanTree p; HT = (HuffmanTree)malloc( (m + 1) * sizeof(HTNode)); for( p = HT+1, i = 1; i <= n; i++, p++, w++) { p->weight = *w; p->parent = p->lchild = p->rchild = 0; } for(; i <= m; i++, p++) { p->weight = p->parent = p->lchild = p->rchild = 0; } //輸出這時候Huffman樹 /*for(int i=1; i<=n; i++) { printf("%d %d %d %d ", HT[i].weight, HT[i].parent, HT[i].lchild, HT[i].rchild); }*/ for(i = n + 1; i<=m; i++) { Select(HT, i⑴); //printf("%d %d ", s1, s2); HT[s1].parent = i; HT[s2].parent = i; HT[i].lchild = s1; HT[i].rchild = s2; HT[i].weight = HT[s1].weight + HT[s2].weight; } HC = (HuffmanCode)malloc( ( n + 1 ) * sizeof(char *)); char *cd = (char *)malloc( n * sizeof(char) ); cd[n⑴] = ' 主站蜘蛛池模板: 欧美性猛交xxxx黑人喷水 | 一区二区三区视频 | 国产毛片a精品毛 | 日本成人不卡 | 最近高清中文字幕大全免费1 | 亚洲产国偷v产偷v自拍自拍 | 欧美一卡二卡3卡4卡无卡免费 | 亚洲免费精品视频 | 精品欧美视频 | 国产视频一区二区在线观看 | 亚洲影院在线 | 午夜影院在线观看 | 一区二区三区在线免费 | 大香伊在人线免费 | 国产一区二区免费视频 | 久久精品久久精品久久精品 | 日韩欧美h| 国内成人精品视频 | 成人国产在线24小时播放视频 | ppypp日本欧美一区二区 | 日本成年一区久久综合 | 福利午夜| 亚洲处破女网站 | 亚洲性夜 | 日韩欧美亚洲国产一区二区三区 | 五月天婷五月天综合网在线 | 一级做a爰片性色毛片刺激 一级做a爰片性色毛片黄书 | 亚洲男人影院 | 精品国产福利第一区二区三区 | 亚洲伊人久久精品 | 羞羞网页 | 欧美日本一道高清免费3区 欧美日本一道免费一区三区 | www亚洲免费 | 精品久久免费观看 | 亚洲国产成人资源在线桃色 | 女人的天堂网 | 成人免费体验区福利云点播 | 成人性色生活片免费看爆迷你毛片 | 爱爱精品视频 | 国产第1页| 亚洲国产精品激情在线观看 |