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

正文內(nèi)容

課程設(shè)計(jì)哈夫曼編碼編程實(shí)現(xiàn)-在線瀏覽

2024-07-29 00:07本頁面
  

【正文】 t_huffman_tree(int number,int n)。//從樹中讀相應(yīng)字符的哈夫編碼void reading_code()。//讀相應(yīng)字符哈夫編碼的入口函數(shù)void read_file(void)。//用于是從文件中讀取字符還是從鍵盤。 int frequency。} *head0。其中ch用來記錄相應(yīng)的字符。struct huffman_number_node{ char ch。 int parent。 int right_child。//這個(gè)用來構(gòu)建哈夫曼樹結(jié)點(diǎn)的類型。data用來記錄權(quán)重。ritht_child 用來記錄右子結(jié)點(diǎn)的位置。struct stack_data{ int one_zeros。struct stack{ struct stack_data *base。} stack_operate。//初始化承載不同字符及其頻數(shù)的鏈表的表頭結(jié)點(diǎn)。 int n=head0frequency。 enter_huffman_values(n)。 creat_huffman_tree(n,n)。 coutendl。 read_huffman_code()。 system(pause)。}void view(void){ cout**************************************************endl。 cout from the keyboard reading characters endl。 int select_number。 switch(select_number) { case 1:read_file()。break。system(cls)。 default:exit(0)。 struct huffman_number_node *pointer1=head。for(int i=0。i++)//這個(gè)循環(huán)中訪問存儲(chǔ)空間中的前head0frequency 個(gè)葉子結(jié)點(diǎn)。 39。amp。\n39。 coutpointer1ch39。//如果,ch數(shù)據(jù)項(xiàng)不是空格與換行符,就直接打印。 39。=39。=39。//進(jìn)入讀取相就字符的huffman code. cout39。39。 pointer1++。 }}void go_further_read(struct huffman_number_node *pointer)//這個(gè)函數(shù)中以葉子結(jié)點(diǎn)開始,來讀哈夫曼碼元。訪問其父結(jié)點(diǎn)。//創(chuàng)建一個(gè)棧來存儲(chǔ)相就的哈夫曼編碼struct huffman_number_node *pointer1=pointer,*pointer2。//初始化棧。//pointer2指向pointer1的父結(jié)點(diǎn)。 { one_zeros=0。 } else { one_zeros=1。 } pointer1=pointer2。//進(jìn)入讀棧函數(shù)}void reading_code()//用棧的讀取方法讀取碼元就那個(gè)字符的哈夫曼編碼。 for(。 ) { pointer=。 }}int enter_huffman_values(int n){head=new struct huffman_number_node[2*n1]。于是就創(chuàng)建2*n1個(gè)空間來用于存放相應(yīng)的結(jié)點(diǎn)數(shù)據(jù)并把該空間的地址給head.struct huffman_number_node *pointer=head。struct information_node *pointer1=head0next。for(int i=0。i++)//用循環(huán)來給存儲(chǔ)哈夫曼樹結(jié)點(diǎn)的那個(gè)空間的前n個(gè)空間輸入n個(gè)結(jié)點(diǎn)值,這n個(gè)結(jié)點(diǎn)是葉子結(jié)點(diǎn)。 { pointerch=pointer1ch。 pointerdata=pointer1frequency。 pointerparent=1。//以0來表示,該結(jié)點(diǎn)沒有左子結(jié)點(diǎn)。 pointerright_child=0。 pointer++。 } for(int i=n。i++)//這個(gè)部分是把存儲(chǔ)空間的其它沒有存儲(chǔ)數(shù)據(jù)的空間初始化。39。 pointerleft_child=0。 pointer++。}bool find_record(char cha)//找出已存入的字符{struct information_node *pointer。if(head0frequency==0) return false。 else { pointer=head0next。ihead0frequency。 { if(pointerch==cha)//判斷訪問到的結(jié)點(diǎn)是不是有要查找的字符。 { pointerfrequency+=1。 } pointer=pointernext。//最后還是沒找到就,向調(diào)用函數(shù)返回否。//創(chuàng)建一個(gè)與承載統(tǒng)計(jì)字符的鏈表的表頭結(jié)點(diǎn)同類型的指針并指向那個(gè)頭結(jié)點(diǎn)。用以插入一個(gè)新的結(jié)點(diǎn),來存儲(chǔ)新的結(jié)點(diǎn)。head0frequency+=1。//創(chuàng)建新的結(jié)點(diǎn),用以記錄新的字符。 pointernextfrequency=1。 pointernextnext=NULL。}void particular_recording(char ch)//判斷字符是否在承載不同的字符的鏈表中出現(xiàn)與否。//
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1