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

正文內(nèi)容

哈夫曼編碼譯碼系統(tǒng)實(shí)驗(yàn)報(bào)告畢業(yè)論文-文庫吧資料

2025-07-03 23:43本頁面
  

【正文】 **************************endl。 m[k]=h。j++) { if(str[i]==str[j]) h++。 for(j=i。 printf(字符%c出現(xiàn),Str[k])。 while(str[i]!=str[j]) j++。i++) { j=0。 for(i=0。} } printf(\n)。\n39。 while((ch)) { printf(%c,ch)。 printf(文件中提取的文章字符串是:\n)。 int n=0。 char Str[100]。 }void HuffmanTree1::TranslatedCode() { ifstream ifs()。 printf(\n)。 continue。 } else { l=lk。 j=0。 } } if(hu==n) { printf(%c,b[j].Leaf)。 k++。 while(hun) { if(s[l]==b[j].Info[hu]) { l++。 while(lt) { while(jn) { int hu=b[j].Start+1。 int j=0。t++)。s[t]!=39。 getline(ifs,s)。 ofstream ofs()。 }void HuffmanTree1::TranslateArtcle(HuffmanCode1 b[],int n) //將所譯的碼翻譯成文章并保存 { int t=0。 printf(\n)。 } } t++。j++) { printf(%c,b[i].Info[j])。i++) { if(s[t]==b[i].Leaf) for(int j=b[i].Start+1。 for(int i=0。\n39。 printf(報(bào)文的編碼為:\n)。 char ch。 char s[1000]。 } }void HuffmanTree1::TransCode(HuffmanCode1 b[],int n) //對(duì)文章進(jìn)行翻譯并保存 { ifstream ifs()。 } printf(\n)。j++) { b[i].Info[j]=[j]。 for(int j=+1。 p=a[c].parent。 。 else []=39。 while(p!=0) { if(a[p].lchild==c) []=39。 c=i。in。 int c,p。 f=n。 //TranslateArtcle(HfmCode,n)。 } CodeHuf(HfmNode,HfmCode,n)。 HfmNode[n+i].lchild=x1。 HfmNode[x2].flag=1。 HfmNode[x2].parent=n+i。 x2=j。amp。 x1=j。 x2=x1。amp。jn+i。 x1=x2=0。in1。 HfmCode[i].Leaf=Str[i]。in。 HfmNode[i].rchild=1。 HfmNode[i].flag=0。i++) { HfmNode[i].weight=0。 for(i=0。 HuffmanNode *HfmNode=new HuffmanNode[2*n1]。 } //將樹結(jié)點(diǎn)初始化為空HuffmanTree1::~HuffmanTree1() { delete[] Node。endif //include iostreamincludeinclude include includeincludestringusing namespace std。 void TranslateArtcle(HuffmanCode1 b[],int n) 。 void CreateHfmTree(char Str[],int m[],int n)。 void TranslatedCode()。 HuffmanTree1()。 public: int f。 }。 int Start。 }。 int lchild,rchild。struct HuffmanNode //定義哈夫曼樹各結(jié)點(diǎn) { int weight。 鄭莉 董淵 何江舟 【3】 數(shù)據(jù)結(jié)構(gòu)(C版)。通過此次實(shí)驗(yàn)我對(duì)調(diào)試有了更加深刻的理解,懂得怎么樣去調(diào)試程序,如何發(fā)現(xiàn)錯(cuò)誤,如何更高效的改正,最終能把程序?qū)崿F(xiàn)。當(dāng)自己最終在自己的努力下完成任務(wù)的時(shí)候,那就會(huì)有更多屬于自己的收獲,包括成功的喜悅以及程序中體現(xiàn)的思想。還學(xué)到了許多在處理程序時(shí)的技巧和方法,這都對(duì)以后的學(xué)習(xí)大有裨益,以及感受到在編程設(shè)計(jì)中團(tuán)隊(duì)合作精神的重要性。層次二:使用者從系統(tǒng)界面輸入字符串,統(tǒng)計(jì)從鍵盤輸入的字符串信息,然后建立哈夫曼樹,并給出報(bào)文的編碼,然后根據(jù)使用者的需要對(duì)指定文件里的或者使用者從系統(tǒng)界面輸入任意二進(jìn)制編碼的進(jìn)行譯碼并顯示。fp是文件指針變量。fgetc函數(shù)的調(diào)用形式 ch=fgetc(fp)。fp是文件指針變量。 文件的讀寫 fputc函數(shù)把一個(gè)字符寫到磁盤文件上去,其一般調(diào)用形式為putc(ch,fp)。fp=fopen(“al”,”w”)。 文件的打開(fopen函數(shù))和文件的打開(fclose函數(shù))FILE *fp。 C語言文件處理方式 結(jié)構(gòu)體FILE結(jié)構(gòu)體FILE類型可以用來定義文件型指針變量,可以使指針指向某一個(gè)文件的結(jié)構(gòu)體變量,從而通過該結(jié)構(gòu)體變量中的文件信息能夠訪問該文件。流插入運(yùn)算符函數(shù)operator和流提取運(yùn)算符函數(shù)operator、put/get/getline函數(shù)主要用于格式化I/O。成員函數(shù)close首先刷新緩沖區(qū),把所有等待輸出的內(nèi)容寫到磁盤文件中,然后關(guān)閉磁盤文件,并斷開磁盤文件與文件緩沖區(qū)的聯(lián)系。 哈夫曼編碼哈夫曼樹可用于構(gòu)造最短的不等長(zhǎng)編碼方案,具體做法如下:設(shè)需要編碼的字符集合為{d1,d2,…,dn},它們?cè)谧址谐霈F(xiàn)的頻率為{w1, w2,…, wn},以d1,d2,…,dn作為葉子結(jié)點(diǎn), w1, w2,…, wn作為葉子結(jié)點(diǎn)的權(quán)值,構(gòu)造一顆哈夫曼編碼樹,規(guī)定哈夫曼編碼樹的左分支代表0,右分支代表1,則從根結(jié)點(diǎn)到每個(gè)葉子結(jié)點(diǎn)所經(jīng)過的路徑組成的0和1的序列便為該葉子結(jié)點(diǎn)對(duì)應(yīng)字符的編碼,稱為哈夫曼編碼(Huffman Code).在哈夫曼編碼樹中,數(shù)的帶權(quán)路徑長(zhǎng)度的含義是各個(gè)字符的碼長(zhǎng)與其出現(xiàn)次數(shù)的乘積之和,它們不可能在根結(jié)點(diǎn)到其他字符結(jié)點(diǎn)的路徑上,所以一個(gè)字符的哈夫曼編碼不可能是另一個(gè)字符的哈夫曼編碼的前綴,從而保證了解碼的唯一性. C++文件I/O流 文件的打開與關(guān)閉本程序中,建立流對(duì)象調(diào)用成員函數(shù)open和close進(jìn)行文件的打開和關(guān)閉。 int lchild,rchild。 int weight。rchild:指針域,保存該結(jié)點(diǎn)的右孩子結(jié)點(diǎn)在數(shù)組中的下標(biāo)。(4) 重復(fù)(2)、(3)兩步,當(dāng)集合F中只剩下一棵二叉樹時(shí),這棵二叉樹便是哈夫曼樹. 存儲(chǔ)結(jié)構(gòu)在由哈夫曼算法構(gòu)造的哈夫曼樹中,非葉子結(jié)點(diǎn)的度均為2,根據(jù)二叉樹的性質(zhì)可知,具有n個(gè)葉子結(jié)點(diǎn)的哈夫曼樹共有2n1個(gè)結(jié)點(diǎn),其中有n1個(gè)非葉子結(jié)點(diǎn),設(shè)置一個(gè)數(shù)組HuffmanNode[2n1]保存哈夫曼樹中各結(jié)點(diǎn)的信息,數(shù)組元素的結(jié)點(diǎn)結(jié)構(gòu)如圖31所示.weight parentlchildrchildinf 圖31 哈夫曼樹的結(jié)點(diǎn)結(jié)構(gòu)其中,weight:權(quán)值域,保存該結(jié)點(diǎn)的權(quán)值。(2) 選取與合并:在F中選取根結(jié)點(diǎn)的權(quán)值最小的兩棵二叉樹分別作為左、右子樹構(gòu)造一顆新的二叉樹,這棵新二叉樹的根結(jié)點(diǎn)的權(quán)值為其左、右子樹根結(jié)點(diǎn)的權(quán)值之和。然后利用這些信息建立哈夫曼樹對(duì)各個(gè)字符進(jìn)行編碼和保存相關(guān)信息。然后對(duì)象HuffmanNode再調(diào)用成員函數(shù)TranslateArtcle()對(duì)指定文件得到的二進(jìn)制編碼進(jìn)行譯碼,并保存翻譯得到的信息。在主菜單中運(yùn)用了switch()函數(shù)和“case”語句,便于對(duì)整個(gè)程序操作和控制;對(duì)數(shù)據(jù)保存在文檔中,則運(yùn)用了文件I/O流和C語言的文件處理方式,進(jìn)行文件與內(nèi)存之間輸入,輸出數(shù)據(jù)。哈夫曼編碼/譯碼程序主要由主函數(shù)、哈夫曼樹類和各種功能函數(shù)組成,程序運(yùn)行時(shí)首先進(jìn)入主函數(shù),對(duì)各種功能函數(shù)進(jìn)行調(diào)用,從而實(shí)現(xiàn)了整個(gè)程序的運(yùn)行。哈夫曼編碼就是用于此目的的不等長(zhǎng)編碼方法。ASCII編碼是等長(zhǎng)編碼。文本由字符組成,字符以某種編碼形式存儲(chǔ)在計(jì)算機(jī)中。層次二:使用者從系統(tǒng)界面輸入字符串,統(tǒng)計(jì)從鍵盤輸入的字符串信息,然后建立哈夫曼樹,并給出報(bào)文的編碼,然后根據(jù)使用者的需要對(duì)指定文件里的或者使用者從系統(tǒng)界面輸入任意二進(jìn)制編碼的進(jìn)行譯碼并顯示。從以上分析可發(fā)現(xiàn),在本例中的主要算法有三個(gè):(1)哈夫曼樹的建立;(2)哈夫曼編碼的生成;(3)對(duì)編碼信息的翻譯。在本例中設(shè)置發(fā)送者和接受者兩個(gè)功能,:①輸入待傳送的字符信息;②統(tǒng)計(jì)字符信息中出現(xiàn)的字符種類數(shù)和各字符出現(xiàn)的次數(shù)(頻率);②根據(jù)字符的種類數(shù)和各自出現(xiàn)的次數(shù)建立哈夫曼樹;③利用以上哈夫曼樹求出各字符的哈夫曼編碼;④將字符信息轉(zhuǎn)換成對(duì)應(yīng)的編碼信息進(jìn)行傳送。 Procedure 34 第一章 課題描述利用哈夫曼編碼進(jìn)行通信,可以壓縮通信的數(shù)據(jù)量,提高傳輸效率,縮短信息的傳輸時(shí)間,還有一定的保密性。 Coding。s Huffman codes the code recognition system, realizes to assigns the text the code and the decoding, and the arbitrary input text may realize the frequency statistics, establishes
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1