字元空格 a b c d e f g h i j k l m
頻度 180 64 13 23 32103 22 15 47 57 1 5 31 20
字元 n o p q r s t u v w x y z
頻度 55 63 15 1 48 56 80 25 7 18 2 16 1
現請編寫程式你實現如下功能:
(1)執行時,由使用者輸入來初始化字符集大小和相應用字元。
(2)輸入乙個要加密的字串,將其加密。
(3)輸出解密字串。
#include#define n 27 //空格+26個大寫字母
#define m 2*n-1
#define infinity 32767
struct node //huffman樹的結點結構
;struct codetype //huffman編碼結構
;struct element //字元及其編碼的結構
;struct node tree[m+1]; //n個結點的huffman樹
struct element user[n+1],t[100]; //n個結點的huffman編碼表,使用者編碼
int x1,x2;
void sethuftree(); //有關函式宣告
void select0(int s);
void sethufcode();
void setcode();
void printtree();
void printhufcode();
void decrypt();
void encryptor();
void main() //**********主函式**********
void sethuftree() //建立huffuman樹
; char usersymbol[n]=;
for(i=1;i<=m;i++) //初始雙親,左,右結點為:0
tree[i].prents=tree[i].lchild=tree[i].rchild=0;
for(i=1;i<=n+1;i++) //初始化27個字元及其權值
for(i=n+1;i<=m;i++) //找權值最小的2個結點,組成huffman樹
}void select0(int s) //找權值最小的2個結點
CSD程式設計題目
555,和lijun設計了二天的題目,居然不小心發給他們後連答案都被洩露了出來,只好重出.嗯,下面是上次的,現在沒用了,只好放在這上面放放嘍 1.fibonacci數列 1201 年,義大利數學家 fibonacci 發現了以他自己的名字命名的數列 fibonacci 數列。他是在研究兔子的生長 繁...
程式設計題目分類
codeforces 2a.winner codeforces 550b preparing olympiad codeforces 560a currency system in geraldion codeforces 560b gerald is into art codeforces 567...
leetcode程式設計題目
題目分析 給出乙個字串,求出最長的沒有重複字元的子串。解題思路 記錄法 首先我們必須知道怎麼判斷乙個子串的字元是否都只出現一次可以開乙個足夠大的布林陣列,然後每個字元是否出現記錄在對應ascll碼值的下標位置,初始化陣列都為0一旦遍歷到某個字元ch,若arr ch 1則表示ch已經在之前出現過,那我...