【正文】
ht[m]為其根結(jié)void huffmancodes(huffmantree ht,huffmancode hcd) /*根據(jù)huffman樹ht求huffman編開始設(shè)置字符數(shù)目n輸入權(quán)值若輸入=n,輸入字符 N Y輸出編碼數(shù)結(jié)束 void inithuffmantree(huffmantree ht)void inputweight(huffmantree ht),存放權(quán)值最小和次小序號void selectmin(huffmantree ht, int i, int *p1, int *p2)void createhuffmantree(huffmantree ht)void huffmancodes(huffmantree ht,huffmancode hcd) 字符:R S T U V W X Y Z頻度:48 51 80 23 8 18 1 16 10字符: A B C D E F G H I J K L M N O P Q頻度:186 64 13 22 32 103 21 15 47 57 1 2 32 20 57 63 15 1includeinclude // 用到系統(tǒng)標(biāo)準(zhǔn)輸出函數(shù)的includeinclude //用到像getch()這種鍵盤輸入函數(shù)/* Huffman 樹的存儲結(jié)構(gòu)*/define n 9 /*葉子數(shù)目根據(jù)需要設(shè)定*/define m 2*n1 /* Huffman 樹中結(jié)點(diǎn)總數(shù) *//* Huffman 樹的存儲結(jié)構(gòu)*/typedef struct /*結(jié)構(gòu)體定義*/{int weight。 /*左、右孩子及雙親的下標(biāo)*/}htnode。 /* huffmantree是結(jié)構(gòu)數(shù)組類型,其0號單元不用,存儲哈夫曼樹 */typedef struct{char ch。 /*存放編碼位串*/}codenode。 /*huffmancode是結(jié)構(gòu)數(shù)組類型,其0號單元不用,存儲哈夫曼編碼*/void inithuffmantree(huffmantree ht) /*初始化哈夫曼樹函數(shù)inithuffmantree()*/{int i。i=m。 ht[i].lchild=ht[i].rchild=ht[i].parent=0。 for(i=1。i++) { printf( ……請輸入第[%d]個權(quán)