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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-赫夫曼編碼系統(tǒng)-免費(fèi)閱讀

2025-07-08 01:44 上一頁面

下一頁面
  

【正文】 28 / 29 } void Bound(char character, int size) { while (size) { putchar(character)。 while ((ch = fgetc(fp)) != EOF) { tempCode[end] = ch。 int end。 ++position) { if (strcmp(tempCode, code[position]) == 0) { return true。 i=0。 = ptr。 characterNumber = 0。 fflush(stdin)。 gets(name)。 Data *ptr。 continue。 fflush(stdin)。 getch()。139。 printf( 0. 返 回 主 菜 單 \n)。 getch()。 } for(int i=0。 } void ExportCharacterWeight() { char outFileName[30]。 exit(0)。 char outFileName[30]。 break。339。139。 printf( 0. 返 回 主 菜 單 \n)。 while (true) { system(CLS)。 info = (Static *)malloc(sizeof(Static) * codeSize)。 } ptrdata = ch。 } else { while ((current != NULL) amp。 while ((ch = fgetc(fp)) != EOF) { current = 。 gets(fileName)。 while ((fp = fopen(fileName, rb)) == NULL) { printf(\n 您需要打開的文件不存在 , 是否需要重新打開 (Y/N)? : )。 char choice。 } } 18 / 29 if ((code[i] = (char *)malloc(sizeof(char) * (codeSize start))) == NULL) { printf( 內(nèi)存不足 , 操作失敗 !\n)。 icodeSize。 char *tempCode。 } } } list[lnode].parent = i。 for(j=0。 ++i, ++ptr) { ptrdata = 39。 exit(0)。 break。 case 39。 switch (choice) { case 39。 printf( 2. 文 件 譯 碼 \n)。 //文件名 char fileName[30]。 //顯示譯碼后的文件內(nèi)容 void DisplayContext()。info)。 struct node *next。 int weight。 getch()。 /******************************此部分為解碼過程 ************************/ printf(\n 文件內(nèi)容為 :\n\n )。 int position。 position codeSize。 current = 。 ptrnumber = 1。amp。 if (current == NULL) { if ((ptr = (Data *)malloc(sizeof(Data))) == NULL) { printf( 內(nèi)存不足 , 操作失敗 !\n)。 continue。 fflush(stdin)。 int characterNumber, typeNumber。 } . 字符權(quán)重計(jì)算 //Data characterList: characterList 為 動(dòng)態(tài)建立的存放字符種類及在文本中出現(xiàn)次數(shù)的單鏈表 . typedef struct node { char data。039。 } tempCode[codeSize1] = 39。 } } . Huffman 編碼 void CreatHuffmanCode(HuffmanTree *list, HuffmanCode amp。 lnode = j。 ilimit。 ptrparent = ptrlchild = ptrrchild = 1。 HuffmanTree *ptr。 //分別為根、左子樹、右子樹 }HuffmanTree。 . 文件解碼(解密) 文件的解碼程序是一步完成的,即要求操作者首先將之前生成的字符權(quán)重(即密鑰)導(dǎo)入程序, 程序根據(jù)獲取到得字符權(quán)重,調(diào)用赫夫曼編碼子程序,進(jìn)行赫夫曼編碼 。 . 文件編碼(加密) 首先選擇文件編碼程序。 本次的課程設(shè)計(jì)以赫夫曼編碼為題,設(shè)計(jì)出赫夫曼文件編碼系統(tǒng),旨在對(duì)文件中的內(nèi)容進(jìn)行分析、統(tǒng)計(jì)、處理,進(jìn)而按照赫夫曼編碼的理論 ,對(duì)文件進(jìn)行簡單加密。(至此,加密的文件應(yīng)經(jīng)生成)。 . 主要算法說明 . Huffman 樹 //HuffmanTree list: list 為赫夫曼樹 . typedef struct { char data。list, Static *info, int codeSize) 4 / 29 { int i, j, limit。 icodeSize。 ptrweight = 0。 ++j) { if (list[j].parent == 1) { if (list[j].weight value1) { value2 = value1。 list[i].weight = list[lnode].weight + list[rnode].weight。 exit(0)。 6 / 29 for(flag1=i, flag2=list[i].parent。 } strcpy(code[i], amp。info) { FILE *fp。 fflush(stdin)。 printf(\n 請(qǐng)輸入需要打開的文件名稱 : )。 } } characterNumber = typeNumber = 0。 = ptr。 } else { if ((ptr = (Data *)malloc(sizeof(Data))) == NULL) { printf( 內(nèi)存不足 , 操作失敗 !\n)。 } } } fclose(fp)。 current = currentnext。 CreatHuffmanCode(list, code, codeSize)。 if ((tempCode = (char *)malloc(sizeof(char) * codeSize)) == NULL) 10 / 29 { printf( 內(nèi)存不足 , 操作失敗 !\n)。 if (CompareData(tempCode, position)) { printf(%c, info[position].data)。在設(shè)計(jì)的時(shí)候,曾準(zhǔn)備根據(jù)網(wǎng)上之前對(duì) 26 個(gè)英文字符的使用統(tǒng)計(jì)來事先對(duì)字符權(quán)重進(jìn)行分配(這樣加密的文件可解密性增加了),而且考慮到文件中不僅有 26 個(gè)英文字母,如果對(duì)各種字符的使用頻率進(jìn)行統(tǒng)計(jì),這個(gè)事先工作的負(fù)擔(dān)會(huì)很重,所以之后編寫了自動(dòng)統(tǒng)計(jì)文本字符的頻率程序,這樣工作量 會(huì)減小很多(而且文件的可解密性大大減小,但是也帶來了記錄密鑰的不方便)。 }Static。 14 / 29 //創(chuàng)建赫夫曼代碼 void CreatHuffmanCode(HuffmanTree *list, HuffmanCode amp。 //文件譯碼程序 void FileDecoding()。 //赫夫曼代碼 HuffmanCode code。39。 printf( 請(qǐng)選擇 : )。239。 break。 HuffmanTree *ptr。 ptrparent = ptrlchild = ptrrchild = 1。 ilimit。 lnode = j。 } } void CreatHuffmanCo
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1