日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

Huffman樹的應用 (數據結構)

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

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⑴] = ' 主站蜘蛛池模板: 欧美激情视频一区二区 | 日本三级在线视频 | 成人福利视频网站 | 日韩欧美精品一区二区三区经典 | 97精品国产97久久久久久免费 | 国产日本亚洲香蕉视频 | 成人免费视 | 久久视频国产 | 国产精品国产三级国产专播精品人 | 粉嫩av网站 | 影视av久久久噜噜噜噜噜三级 | 91精品国产一区二区三区 | 精久久久久久 | 91精品国产欧美一区二区 | 午夜国产福利 | 国产视频久久久久 | 黄色短视频在线播放 | 国产视频a| 香蕉视频色版在线观看 | 久久精品夜夜夜夜夜久久 | 成人国产精品免费观看视频 | 欧美精品一区三区 | wwwyoujizz日本 | 欧美一区二区三区精品 | 天堂av在线免费观看 | 日本一区免费看 | 久久久精选 | 91精品国产一区二区 | 黄网站在线免费看 | 岛国精品 | 日韩精品久久一区二区三区 | 午夜一区 | 精品国产乱码久久久久久闺蜜 | 黄色一级大片 | 不卡在线 | 中文字幕在线观看第一页 | av网站免费 | 日韩精品视频在线免费观看 | 欧美高清视频在线 | 欧美精品一二三 | 亚洲精选一区 |