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

正文內(nèi)容

課程設(shè)計(jì)哈夫曼編碼編程實(shí)現(xiàn)-展示頁

2025-06-27 00:07本頁面
  

【正文】 ft_child來記錄其左子結(jié)點(diǎn)的位置,無左子樹,就記錄為0。ch為字符。} *head。 int left_child。 int data。frequency用來記錄字符出現(xiàn)的字符的頻數(shù),最后用來構(gòu)成哈夫曼樹葉子結(jié)點(diǎn)的權(quán)重。//這是一個(gè)用來構(gòu)建統(tǒng)計(jì)字符鏈表結(jié)點(diǎn)類型的結(jié)構(gòu)體。 struct information_node *next。struct information_node{ char ch。//從文件中讀取字符void view(void)。//打印相應(yīng)字符的哈夫編碼void read_huffman_code(void)。//創(chuàng)建哈夫曼樹void go_further_read(struct huffman_number_node *pointer)。int enter_huffman_values(int n)。void initialization_of_head(void)。void statistics(void)。//插入新字符void particular_recording(char ch)。bool find_record(char cha)。在前面讀碼元中。在父結(jié)點(diǎn)中記錄其是左子樹,直到訪問到根結(jié)點(diǎn)。讀的方法是從葉子結(jié)點(diǎn)開始,然后就順著葉子結(jié)點(diǎn)所記錄的父結(jié)點(diǎn)。//哈夫曼樹葉子結(jié)點(diǎn)的輸入creat_huffman_tree(number,n)。利用構(gòu)成哈夫曼樹的方法,來構(gòu)成一棵哈夫樹。最后用head來指向那個(gè)存儲空間。ritht_child用來記錄右子結(jié)點(diǎn)的位置。data用來記錄權(quán)重。} *head。 int left_child。 int data。在每個(gè)結(jié)點(diǎn)是一個(gè)結(jié)構(gòu)體類型。而剩余的空間用來存放其它的結(jié)點(diǎn),因?yàn)橐豢霉蚵鼧淙绻衝個(gè)葉子結(jié)點(diǎn),那么這棵樹總共有2*n1個(gè)結(jié)點(diǎn)。創(chuàng)建了2*n1哈夫曼樹結(jié)點(diǎn)空間,給存儲哈夫曼樹結(jié)點(diǎn)的那個(gè)空間的前n個(gè)空間輸入n個(gè)結(jié)點(diǎn)值,這n個(gè)結(jié)點(diǎn)是葉子結(jié)點(diǎn)(其中n是統(tǒng)計(jì)的不同字符各數(shù))。而哈夫曼編碼的讀取,可用樹的遍歷的方法。每次由無父結(jié)點(diǎn)的結(jié)點(diǎn)中選出兩個(gè)權(quán)重最小的兩結(jié)點(diǎn),把它們的權(quán)重之和來構(gòu)建一個(gè)新結(jié)點(diǎn)的權(quán)重,并且用那兩個(gè)結(jié)點(diǎn)要記錄它們的父結(jié)點(diǎn)就是那個(gè)新結(jié)點(diǎn)。 else count(ch)。 recording(ch)。)//從輸入流中斷獲取字符 if (!find_record(ch))//如果在承載字符的鏈表中以有那個(gè)字符,就不記錄。while((ch=())!=39。便于后面的函數(shù)實(shí)現(xiàn)。其中,本人在這個(gè)鏈表中的表頭的結(jié)點(diǎn),本人不用作統(tǒng)計(jì)字符的記錄。frequency用來記錄字符出現(xiàn)的字符的頻數(shù),最后用來構(gòu)成哈夫曼樹葉子結(jié)點(diǎn)的權(quán)重。} *head0。 int frequency。在鏈表中的結(jié)點(diǎn)是一個(gè)結(jié)構(gòu)體。并把所有字符關(guān)聯(lián)到一起。實(shí)現(xiàn)思路字符統(tǒng)計(jì):字符統(tǒng)計(jì)是為了計(jì)算出字符的頻數(shù),以之構(gòu)成哈夫曼樹葉子結(jié)點(diǎn)的權(quán)。課題分析: 由課題的要求,在編程中要實(shí)現(xiàn)字符統(tǒng)計(jì)、哈夫曼樹的建立及該樹的哈夫曼編碼的讀取。湖南科技學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)課程設(shè)計(jì)題目:哈夫曼編碼編程實(shí)現(xiàn)系:數(shù)學(xué)與計(jì)算科學(xué)系專 業(yè):信息與計(jì)算科學(xué)年級、班:姓 名:學(xué) 號:指導(dǎo)教師:職 稱:講師2011年12月課程設(shè)計(jì)課題: 利用哈夫曼編碼進(jìn)行通信可以大大提高信道利用率,縮短信息傳輸時(shí)間,降低傳輸成本,試設(shè)計(jì)一個(gè)哈夫曼編碼系統(tǒng)。功能要求:從鍵盤輸入一段報(bào)文(如what did you do that made you so happy)或從文檔中讀取,輸出這段報(bào)文的哈夫曼編碼。這三者順序進(jìn)行。在實(shí)現(xiàn)中,本人采用一個(gè)鏈表表示字符的統(tǒng)計(jì)信息。這個(gè)鏈表在后面稱為承載統(tǒng)計(jì)字符鏈表。struct information_node{ char ch。 struct information_node *next。其中ch用來記錄相應(yīng)的字符。以head0來指向該鏈表。而以其表頭結(jié)點(diǎn)的frequancy來記錄該鏈表中字符和數(shù)。void statistics(){ char ch。39。退回調(diào)用函 //數(shù)。//如果在承載字符的鏈表中沒那個(gè)字符,就向那個(gè)鏈表插入一個(gè)結(jié)點(diǎn) //來記錄那個(gè)字符。// 由于有該字符,向承載統(tǒng)計(jì)字符鏈表中就該字符結(jié)點(diǎn)的個(gè)數(shù)記錄項(xiàng)加1. }構(gòu)建哈夫曼樹:在構(gòu)建哈夫曼樹就用其構(gòu)建的方法,即哈夫曼樹中樹從葉子結(jié)點(diǎn)開始建立。再重復(fù)如上的操作,直到最后的樹的建成。這里,本人用樹的雙親表示法來表示樹的結(jié)構(gòu)。它們的相關(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ù)。葉子結(jié)點(diǎn)以輸入,那就是存在如何構(gòu)樹的問題了,本人采用雙親表示法來表示樹的結(jié)點(diǎn)。struct huffman_number_node{ char ch。 int parent。 int right_child。ch為字符。parent用來記錄該結(jié)點(diǎn)的位置,如果其無父結(jié)點(diǎn),其值為1,left_child來記錄其左子結(jié)點(diǎn)的位置,無左子樹,就記錄為0。如果無右子結(jié)點(diǎn)就把它記錄為0。這樣就能很好的指把所有的結(jié)點(diǎn)關(guān)聯(lián)起來,構(gòu)成一棵樹。enter_huffman_values( n)。//創(chuàng)建哈夫曼樹 從哈夫曼樹中讀哈夫曼編碼: 本人采用從以葉子結(jié)點(diǎn)開始,來讀哈夫曼碼元。訪問其父結(jié)點(diǎn)。這時(shí),這個(gè)葉子結(jié)點(diǎn)的哈夫曼編碼就可由前面讀取碼元的反向打印得來。編程代碼實(shí)現(xiàn)及詳盡解釋include iostreamincludefstreamincludeincludeincludeusing namespace std。//找出已存入的字符void recording(char ch)。//判斷字符是否在承載不同的字符的鏈表中出現(xiàn)與否。//字符頻數(shù)統(tǒng)計(jì)的入口函數(shù)。//初始化一個(gè)以后用于字符輸入的鏈表頭結(jié)點(diǎn),給它空間。//哈夫曼樹葉子結(jié)點(diǎn)的輸入void crea
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1