?? 字符集編碼的存儲結(jié)構(gòu)及其算法描述.txt
字號:
typedef struct {
char ch; //存儲字符
char bits[n+1]; //存放編碼位串
}CodeNode;
typedef CodeNode HuffmanCode[n];
void CharSetHuffmanEncoding(HuffmanTree T,HuffmanCode H)
{//根據(jù)哈夫曼樹T求哈夫曼編碼表H
int c,p,i;//c和p分別指示T中孩子和雙親的位置
char cd[n+1]; //臨時存放編碼
int start; //指示編碼在cd中的起始位置
cd[n]='\0'; //編碼結(jié)束符
for(i=0,i<n,i++){ //依次求葉子T[i]的編碼
H[i].ch=getchar();//讀入葉子T[i]對應的字符
start=n; //編碼起始位置的初值
c=i; //從葉子T[i]開始上溯
while((p=T[c].parent)>=0){//直至上溯到T[c]是樹根為止
//若T[c]是T[p]的左孩子,則生成代碼0;否則生成代碼1
cd[--start]=(T[p).1child==C)?'0':'1';
c=p; //繼續(xù)上溯
}
strcpy(H[i].bits,&cd[start]); //復制編碼位串
}//endfor
}//CharSetHuffmanEncoding
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -