Huffman壓縮試驗(yàn)報(bào)告_第1頁
Huffman壓縮試驗(yàn)報(bào)告_第2頁
Huffman壓縮試驗(yàn)報(bào)告_第3頁
Huffman壓縮試驗(yàn)報(bào)告_第4頁
Huffman壓縮試驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

三.工具/準(zhǔn)備工作22.算法詳細(xì)分析3(3)解壓過程類似壓縮過程的實(shí)現(xiàn)Huffman樹結(jié)點(diǎn)的抽象基類模板Huffman樹葉子節(jié)點(diǎn)派生類模板7達(dá)到節(jié)省存儲(chǔ)空間,壓縮文件的目的。解決了壓縮向其左孩子的分支標(biāo)“0”,引向其右孩子的分該在原被壓縮文件中不存在的字符便會(huì)無中NYNY類類型點(diǎn)virtualMyHuffmanNode<CharType,WeightTy函數(shù)virtualMyHuffmanNode<CharType,WeightTyp模板SetLeft(MyHuffmanNode<CharType,WeiSetRight(MyHuffmanNode<CharType,Wei容值MyLeafNode(constCharType&ch,constWeightType數(shù)數(shù)值MyHuffmanNode<CharType,WeightType>*LefMyHuffmanNode<CharType,WeightType>*RighvoidSetLeft(MyHuffmanNode<CharType,WeightType>*chSetRight(MyHuffmanNode<CharType,W類型MyHuffmanNode<CharType,WeightType>*lChMyHuffmanNode<CharType,WeightType>*rC數(shù)據(jù)成員MyNode(MyHuffmanNode<CharType,WeightType>*l,MyHuffmanNode<CharType,WeightType>*r,函數(shù)模板點(diǎn)MyHuffmanNode<CharType,WeightType>*LefMyHuffmanNode<CharType,WeightType>*LefMyHuffmanNode<CharType,WeightType>*RighvoidSetRight(MyHuffmanNode<CharType,WeigMyHuffmanNode<CharType,WeightType>*roMyHuffmanNode<CharType,WeightType>*cur數(shù)unsignedint(*CharIndex)(cons數(shù)voidClear(MyHuffmanNode<CharType,WeighMyHuffmanTree(CharTypech[],WeightTypew[],intn,unsi數(shù)LinkList<CharType>Decode(StMyHuffmanTree<char,unsignedlong>*pMyHuffmanTr重載運(yùn)算符的操作數(shù)應(yīng)包含非基本類型,不MyHuffmanTree<CharType,WeightType>::CreatCode(MyHuffmanNode<CharType{{}{CreatCode(r->Left(),code,lenCreatCode(r->Right(),code,len+}}MyHuffmanTree<CharType,WeightType>::MyHuffmanTree(Char{MinPriorityHeapQueue<MyHuffmanNodeHelp<CharType,WeightTy{MyHuffmanNodeHelp<CharType,WeightType>tmp.ptr=newMyLeafNode<CharType,WeightTminHeap.InQueue(tmp)}{MyHuffmanNodeHelp<CharType,WeightType>t,t1minHeap.OutQueue(t1)minHeap.OutQueue(t2)t.ptr=newMyNode<CharType,WeightTypminHeap.InQueue(t);//新}MyHuffmanNodeHelp<CharType,WeightType>r;}StringMyHuffmanTree<CharType,WeightType>::Encode(Ch{returncharCodes[(unsignedint)(*Cha}MyHuffmanTree<CharType,WeightType>::Decode(StringstrC{for(intpos=0;pos<st{{charList.Insert(charList.Length()+1,((MyLeaf}}}voidMyHuffmanCompress::Write(uns{buf.ch=(buf.ch<<1)|bit;//將比}}voidMyHuffmanCompress::{{}}voidMyHuffmanCompre{L1:cout<<"\t\t>>請(qǐng)輸入需要壓縮的文件名:";{}{}L2:cout<<"\t\t>>請(qǐng)?jiān)O(shè)置{}{}{}pMyHuffmanTree=newMyHuffmanTree<choutfp.write((char*)&size,sizeof(unsignedoutfp.write((char*)(&w[i]),sizeof(uns{StringstrTmp=pMyHuffmanTree->Encod}}WriteToOutfp();//強(qiáng)行寫入}voidMyHuffmanCompress{L1:cout<<"\t\t>>{}{}L2:cout<<"\t\t>>請(qǐng)?jiān)O(shè)置{}infp.read((char*)&{}pMyHuffmanTree=newMyHuffmanTree<cha}LinkList<char>Text=pMyHuffmanTree->Decode(strT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論