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

正文內(nèi)容

課程設(shè)計(jì)哈夫曼編碼編程實(shí)現(xiàn)-文庫吧資料

2025-06-24 00:07本頁面
  

【正文】 pointernextch=ch。//由于,插入在承載統(tǒng)計(jì)字符的鏈表中插入了一個(gè)新的結(jié)點(diǎn),也就是有了一個(gè)新的字符,那就在其表結(jié)點(diǎn)的字符統(tǒng)計(jì)中加1. pointernext=new struct information_node。 pointer=pointernext。while(pointernext!=NULL)//循環(huán)的方式來找到承載統(tǒng)計(jì)字符的鏈表的表尾結(jié)點(diǎn)。 }}void recording(char ch)//插入新字符{struct information_node *pointer=head0。 } return false。//由于有該字符,就向該字符的個(gè)數(shù)記錄項(xiàng)加1. return true。有就向調(diào)用函數(shù)回答是。i++)//這里就用到鏈表表頭中的字符總數(shù)記錄,來判斷要訪問多少個(gè)結(jié)點(diǎn)。//如果鏈表中有字符,就用pointer來訪問查找,把查找的開始位置告訴pointer. for(int i=0。//如果還沒那個(gè)鏈表中還沒有字符的插入,就向調(diào)用函數(shù)返回沒有這個(gè)字符的記錄。//創(chuàng)建一個(gè)同承載字符鏈表的結(jié)點(diǎn)同類型的指針,用于訪問那個(gè)鏈表。 } return n。 pointerright_child=0。 pointerparent=1。 { pointerch=39。i2*n1。 pointer1=pointer1next。//同上,只是這里是右子結(jié)點(diǎn)。如果有的話,就是其左子結(jié)點(diǎn)的存儲空間位置。//由于還沒有構(gòu)成哈夫曼樹,存儲空間的第一個(gè)結(jié)點(diǎn)位置為1. pointerleft_child=0。//這個(gè)葉子結(jié)點(diǎn)繼續(xù)讀取承載統(tǒng)計(jì)字符鏈表那個(gè)結(jié)點(diǎn)的字符個(gè)數(shù)統(tǒng)計(jì)數(shù)據(jù)項(xiàng)。//這個(gè)葉子結(jié)點(diǎn)讀取一個(gè)承載統(tǒng)計(jì)字符鏈表的一個(gè)結(jié)點(diǎn)的字符數(shù)據(jù)項(xiàng)。它們的相關(guān)數(shù)據(jù)來自承載統(tǒng)計(jì)字符鏈表中的相應(yīng)數(shù)據(jù),一個(gè)葉子結(jié)點(diǎn),就要讀取一個(gè)承載統(tǒng)計(jì)字符鏈表的一個(gè)結(jié)點(diǎn)的數(shù)據(jù)。in。//創(chuàng)建一個(gè)訪問承載統(tǒng)計(jì)字符鏈表的指針。//創(chuàng)建一個(gè)同哈夫曼樹結(jié)點(diǎn)同類型的指針,用來向那個(gè)空間輸入相應(yīng)的數(shù)據(jù)。//由于哈夫曼樹中,有n個(gè)葉子結(jié)點(diǎn),哈夫曼樹就應(yīng)有2*n1個(gè)結(jié)點(diǎn)。 coutpointerone_zeros。0。{ struct stack_data *pointer。 } reading_code()。//是右子結(jié)點(diǎn)就向棧中輸入1 ++。//是左子結(jié)點(diǎn)就向棧中輸入0 ++。 if((pointer1head+1)==pointer2left_child)//判斷pointer1是父結(jié)點(diǎn)的左子結(jié)點(diǎn)還是右子結(jié)點(diǎn)。while(pointer1parent!=1)//由于輸入結(jié)點(diǎn)數(shù)據(jù)時(shí),根結(jié)點(diǎn)的parent項(xiàng)記錄為1,這是循環(huán)條件用來判斷是否訪問到根結(jié)點(diǎn) { pointer2=head+(pointer1parent1)。//輔助訪問指針pointer1與pointer2 =。在父結(jié)點(diǎn)中記錄其是左子樹,直到訪問到根結(jié)點(diǎn){=new struct stack_data[head0frequency]。讀的方法是從葉子結(jié)點(diǎn)開始,然后就順著葉子結(jié)點(diǎn)所記錄的父結(jié)點(diǎn)。 if((i+1)%2==0) coutendl。\t39。\t39。//如果是換行符,就用(line feed)來代替顯示 } go_further_read(pointer1)。 } else cout(line feed)39。)//是空格符就用(a bland space)來代替顯示 { cout(a bland space)39。 else { if(pointer1ch==39。=39。)//由于字符中可能會出現(xiàn)空格與換行符,于它們的ch數(shù)據(jù)項(xiàng)的顯示特殊化處理。pointer1ch!=39。amp。并輸出各葉子結(jié)點(diǎn)的 ch數(shù)據(jù)項(xiàng)與huffman code. { if(pointer1ch!=39。ihead0frequency。//用pointer來訪問哈夫曼樹。 }}void read_huffman_code(void)//打印哈夫曼編碼{ cout display huffman code in followingendlendl。break。 case 2:statistics()。system(cls)。 cinselect_number。 coutplease select the corresponding option .endl。 cout from the file reading characters endl。 return 0。//把哈夫曼編碼打印出來 coutendl。 coutendl。//在上函數(shù)完成葉子結(jié)點(diǎn)的輸入的基礎(chǔ)上創(chuàng)建哈夫曼樹。//該函數(shù)的主要功能性就是,創(chuàng)建要構(gòu)建的樹的所有的結(jié)點(diǎn)空間 //并把葉子結(jié)點(diǎn)賦值。//把完成統(tǒng)計(jì)后,承載字符的鏈表中的總字符個(gè)數(shù)賦值給一個(gè)整 //數(shù)n,用以做參數(shù)傳遞,完成后面函數(shù)的功能。 view()。//建立一個(gè)棧來存放huffman codeint main(void){ initialization_of_head()。 struct stack_data *top。}。如果無右子結(jié)點(diǎn)就把它記錄為0。parent用來記//錄該結(jié)點(diǎn)的位置,如果其無父結(jié)點(diǎn),其值為1,le
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1