91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.01M
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-03-28
  • 語言: 其他
  • 標簽: 其他??

資源簡介


設計一個利用哈夫曼算法的編碼和譯碼系統,重復地顯示并處理“要求”中項目,直到選擇退出為止。 要求: (1)將權值數據存放在數據文件(文件名為data.txt,位于執行程序的當前目錄中) (2)分別采用動態和靜態存儲結構 (3)從鍵盤輸入字符集大小n、n個字符和n個權值,建立哈夫曼樹; (4)利用建好的哈夫曼樹生成哈夫曼編碼; (5)輸出編碼; 用戶可以執行的的功能有: (1)---選擇讀取某個源文件由系統解析建立哈夫曼樹 (2)---手動輸入字符集及其權值信息建立哈夫曼樹 (3)---打印字符集的哈夫曼編碼到屏幕 (4)---選擇某個文本文件進行編碼 (5)---選擇某個代碼

資源截圖

代碼片段和文件信息

/*設計一個利用哈夫曼算法的編碼和譯碼系統,重復地顯示并處理“要求”中項目,直到選擇退出為止。
?要求:
(1)將權值數據存放在數據文件(文件名為data.txt,位于執行程序的當前目錄中)?
(2)分別采用動態和靜態存儲結構
(3)從鍵盤輸入字符集大小n、n個字符和n個權值,建立哈夫曼樹;
(4)利用建好的哈夫曼樹生成哈夫曼編碼;
(5)輸出編碼;
設字符集及頻度如下:
字符:?空格?A?B?C?D?E?F?G?H?I?J?K?L?M,頻度分別為:?186?64?13?22?32?103?21?15?47?57?1?5?32?20
字符:?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?,頻度分別為:57?63?15?1?48?51?80?23?8?18?1?16?1*/
#include?
#include?
#include?
#define?MAXVAL?10000.0
struct?hufmtreenode{//哈弗曼樹結點數據類型
char?data;
float?weight;//結點權值
int?parentlchildrchild;//父結點,左、右孩子結點
};
struct?hufmtree{//哈弗曼樹數據類型
hufmtreenode?*node;//結點數組(根據n的值動態分配)
int?n;//葉子結點數
};
struct?Codetype{//哈弗曼編碼數據類型
char?*bits;//編碼流數組,n為為哈夫曼樹中葉子結點的數目,編碼的長度不可能超過n
int?start;//編碼實際在編碼流數組里的開始位置
};
void?SortHufmtree(hufmtree?*tree){//將哈夫曼樹n個葉子結點由大到小排序
int?ijk;
hufmtreenode?temp;
if?(tree==NULL)
return;
for?(i=0;in;i++)
{
k=i;
for(j=i+1;jn;j++)
if?(tree->node[j].weight>tree->node[k].weight)
k=j;

評論

共有 條評論