freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

課程設計報告--哈夫曼編碼譯碼系統(tǒng)(編輯修改稿)

2025-04-19 12:22 本頁面
 

【文章內(nèi)容簡介】 。3. void exchange(){……}用兩層for循環(huán)實現(xiàn)hufNode[i]節(jié)點的成員哈夫曼編碼數(shù)組code[]前后元素的對換,因為在之前的編碼過程中由于是從葉節(jié)點追溯至根節(jié)點,存入code數(shù)組的哈夫曼編碼與哈夫曼編碼的概念反向,故而要調(diào)整;4. signode * getroot(){……}返回哈夫曼樹的根節(jié)點指針;5. signode * HFM::creat(){……}創(chuàng)建哈夫曼樹,首先用三個for循環(huán)查看forest數(shù)組,找到權(quán)值最小的兩個字符,以int型的min1,min2記錄其下標,定義signode * 類型指針pp指向新生成signode節(jié)點,用指針操作使pp指向的節(jié)點的權(quán)值為min1,min2權(quán)值之和,pp做孩子指向forest[min1],右孩子指向forest[min2],min1,min2的父指針指向pp,然后將pp存入min1的位置,min2之后的每一個節(jié)點依次往前移一個位置,實現(xiàn)從forest數(shù)組中清除min1,min2并加入pp的操作;6. void HFM::hufcode(){……}哈夫曼編碼,用for循環(huán)控制查看hufNode 數(shù)組,其初始化已在creat()的開始完成,對每一個字符實現(xiàn)編碼,用while循環(huán)從葉節(jié)點開始,如果該節(jié)點是其父節(jié)點的左孩子就將code[hufNode[i].size++]賦值0,否則賦為1,直至當前節(jié)點的父節(jié)點為空,while循環(huán)結(jié)束;7. void HFM::savewithhufcode(FILE * inf,FILE * outf){……}將讀入的文章以哈夫曼編碼的形式存儲,其中inf為讀入文件的指針,outf為寫入文件的指針,首先調(diào)用rewind(inf)函數(shù)將光標放置在文章開頭,防止文件未關(guān)閉導致的錯誤,每讀一個字符就用for循環(huán)在hufNode 數(shù)組中查找,因為hufNode 數(shù)組就是保存出現(xiàn)的字符的,故一定可以找到,然后再用fputc函數(shù)將code[]數(shù)組的內(nèi)容寫入文件,直至讀入文件結(jié)束;8. void HFM::inorder(signode * sig){……}迭代法遍歷樹,遍歷到葉節(jié)點時執(zhí)行hufNode[count++].sig=sig語句實現(xiàn)hufNode 數(shù)組指向文章中出現(xiàn)的字符;9. int HFM::maxc(){……} 計數(shù)變量,記錄哈夫曼編碼最大位數(shù);10. void HFM::hufdecode(FILE* ipf,FILE* opf){……}解碼,從哈夫曼編碼到字符,輸出到屏幕和指定的文件中;11. void input(FILE * f){……}初始讀入文章,保存出現(xiàn)的字符記錄修改其權(quán)重;數(shù)據(jù)結(jié)構(gòu)選擇與算法設計 數(shù)據(jù)結(jié)構(gòu)選擇:signode: struct signode{ //signode節(jié)點,哈夫曼樹節(jié)點// char c。 //字符// int weight。 //權(quán)重// bool b。 //文章中是否出現(xiàn)// signode * parent。 signode * left。 signode * right。 signode(){
點擊復制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1