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

正文內容

課程設計哈夫曼編碼編程實現(xiàn)-免費閱讀

2025-07-12 00:07 上一頁面

下一頁面
  

【正文】 其中在函數(shù)creat_huffman_tree(int number,int n)/中用的局部變量存儲空間最大,其為28字節(jié)。它們的大小是隨輸入字符的不同總數(shù)決定的。最后會有n個字符進入record()函數(shù)中插入鏈表。繼上的結果界面時間復雜度分析 該程序中,影響程序執(zhí)行時間的基本運算是賦值運算。這里,也把文件中的空格與換行符也統(tǒng)計進來了,這是本人的想法。creat_huffman_tree(number+1,n)。這里指向提貢data數(shù)據(jù)項最小的那個結點。 }pointerdata=pointer1data+pointer2data。同時,min與sec也要相應的改變記錄。i++)//這個循環(huán)的目的是為了在可查找的結點范圍中找出data數(shù)據(jù)項最小與次之的兩個結點的位置且有pointer1與pointer2記錄它們。 } else//否則,就用pointer指向這個結點,同sec記錄該結點的位置。 } else { if(pointerparent==1amp。 //不為39。while((min==0||sec==0)amp。//,pointer2用于分別指向存儲空間中結點的data數(shù)據(jù)項最小與次之的兩個結點,并且這兩個結點parent數(shù)據(jù)項無父結點記錄的。{ head0=new struct information_node。}void read_file()//從文件中讀取字符。 end enter endl。//如果在承載字符的鏈表中以有那個字符,就不記錄。//創(chuàng)建新的結點,用以記錄新的字符。//最后還是沒找到就,向調用函數(shù)返回否。ihead0frequency。 pointer++。 } for(int i=n。 pointerparent=1。for(int i=0。 ) { pointer=。 } else { one_zeros=1。//創(chuàng)建一個棧來存儲相就的哈夫曼編碼struct huffman_number_node *pointer1=pointer,*pointer2。39。 39。amp。 struct huffman_number_node *pointer1=head。 switch(select_number) { case 1:read_file()。 system(pause)。 enter_huffman_values(n)。struct stack{ struct stack_data *base。//這個用來構建哈夫曼樹結點的類型。其中ch用來記錄相應的字符。//讀相應字符哈夫編碼的入口函數(shù)void read_file(void)。//字符頻數(shù)統(tǒng)計的入口函數(shù)。這時,這個葉子結點的哈夫曼編碼就可由前面讀取碼元的反向打印得來。這樣就能很好的指把所有的結點關聯(lián)起來,構成一棵樹。 int right_child。它們的相關數(shù)據(jù)來自承載統(tǒng)計字符鏈表中的相應數(shù)據(jù),一個葉子結點,就要讀取一個承載統(tǒng)計字符鏈表的一個結點的數(shù)據(jù)。//如果在承載字符的鏈表中沒那個字符,就向那個鏈表插入一個結點 //來記錄那個字符。而以其表頭結點的frequancy來記錄該鏈表中字符和數(shù)。struct information_node{ char ch。功能要求:從鍵盤輸入一段報文(如what did you do that made you so happy)或從文檔中讀取,輸出這段報文的哈夫曼編碼。并把所有字符關聯(lián)到一起。frequency用來記錄字符出現(xiàn)的字符的頻數(shù),最后用來構成哈夫曼樹葉子結點的權重。)//從輸入流中斷獲取字符 if (!find_record(ch))//如果在承載字符的鏈表中以有那個字符,就不記錄。而哈夫曼編碼的讀取,可用樹的遍歷的方法。 int data。ritht_child用來記錄右子結點的位置。讀的方法是從葉子結點開始,然后就順著葉子結點所記錄的父結點。//插入新字符void particular_recording(char ch)。//創(chuàng)建哈夫曼樹void go_further_read(struct huffman_number_node *pointer)。 struct information_node *next。 int left_child。如果無右子結點就把它記錄為0。 view()。 coutendl。 coutplease select the corresponding option .endl。break。并輸出各葉子結點的 ch數(shù)據(jù)項與huffman code. { if(pointer1ch!=39。=39。//如果是換行符,就用(line feed)來代替顯示 } go_further_read(pointer1)。讀的方法是從葉子結點開始,然后就順著葉子結點所記錄的父結點。 if((pointer1head+1)==pointer2left_child)//判斷pointer1是父結點的左子結點還是右子結點。{ struct stack_data *pointer。//創(chuàng)建一個同哈夫曼樹結點同類型的指針,用來向那個空間輸入相應的數(shù)據(jù)。//這個葉子結點讀取一個承載統(tǒng)計字符鏈表的一個結點的字符數(shù)據(jù)項。//同上,只是這里是右子結點。 pointerparent=1。//如果還沒那個鏈表中還沒有字符的插入,就向調用函數(shù)返回沒有這個字符的記錄。//由于有該字符,就向該字符的個數(shù)記錄項加1. return true。
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1