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

正文內(nèi)容

哈夫曼編碼的java實現(xiàn)課程設(shè)計-文庫吧

2025-05-13 22:29 本頁面


【正文】 數(shù)據(jù)的傳送以及對信息的壓縮處理等方面。哈夫曼編碼的基礎(chǔ)是依據(jù)字符出現(xiàn)的頻率值而構(gòu)造一棵哈夫曼樹 , 從而實現(xiàn)最短的編碼表示最常用的數(shù)據(jù)塊或出現(xiàn)頻率最高的數(shù)據(jù) , 具體的方法是 : 建立哈夫曼樹 把 N 個字符出現(xiàn)的頻率值作為字符的權(quán)值 ,然后依據(jù)下列步驟建立哈夫曼樹。 由 N 個權(quán)值分別作 N 棵樹的根結(jié)點而形成一個森林。 從中選擇兩棵根值最小的樹 T1 和 T2 組成一棵以結(jié)點 T 為根結(jié)點的增長樹 , 根結(jié)點 T = T1 + T2 ,即新樹的根值為原來兩棵樹的根值之和 , 而 T1 和T2 分別為增長樹的左右子樹。 把這棵新樹 T 加入到森林中 , 把原來的兩棵樹 T1 和 T2 從森林中刪除。 重復(fù) ~ 步 , 直到合并成一棵樹為止。 生成各字符的哈夫曼編碼 在上面形成的哈夫曼樹中 , 各個字符的權(quán)值結(jié)點都是葉子結(jié)點 , 從葉子結(jié)點開始向根搜索 , 如果是雙親的左分支 , 則用“ 0”標(biāo)記 , 右分支用“ 1”標(biāo)記 , 從葉子結(jié) 點到根結(jié)點所經(jīng)過的分支編碼“ 0”、“ 1”的組合序列就是各字符的哈夫曼編碼。 2 構(gòu)造哈夫曼樹的算法 1)對給定的 n個權(quán)值 {W1,W2,W3,...,Wi,...,Wn}構(gòu)成 n棵二叉樹的初始集合F={T1,T2,T3,...,Ti,..., Tn},其中每棵二叉樹 Ti中只有一個權(quán)值為 Wi的根結(jié)點,它的左右子樹均為空。 2)在 F中選取兩棵根結(jié)點權(quán)值最小的樹作為新構(gòu)造的二叉樹的左右子樹,新二叉樹的根結(jié)點的權(quán)值為其左右子樹的根結(jié)點的權(quán)值之和。 3)從 F中刪除這兩棵樹,并把這棵新的二叉樹同樣以升序排列加入到集合 F中。 3 4)重復(fù) 2)和 3),直到集合 F中只有一棵二叉樹為止。 例如,對于 4個權(quán)值為 7的節(jié)點構(gòu)造一棵哈夫曼樹,其構(gòu)造過程如下圖所示: 圖 1 構(gòu)造哈夫曼樹的過程示例 二、 求解方法介紹 以往的哈夫曼編碼程序?qū)崿F(xiàn)都是利用 PASCAL 或 C 語言描述的 , 而這兩門語言都有相應(yīng)的指針類型來解決 , 實現(xiàn)起來較為容易 , 但是 , JAVA語言是面向?qū)ο蟮木幊陶Z言 , 沒有提供指針類型 , 所以在實現(xiàn)上應(yīng)該結(jié)合 JAVA 的應(yīng)用環(huán)境 , 采用靜態(tài)的方法解決。同時 , JAVA 語言是具有平臺無關(guān)性的網(wǎng)絡(luò)編程語言 , 用 JAVA 語言實現(xiàn)哈夫曼編 碼不論在教學(xué)中或是在實際應(yīng)用中都有一定的意義。 本程序是用哈夫曼樹來實現(xiàn)哈夫曼編碼的功能,根據(jù)輸入的報文進(jìn)行分析,建立哈夫曼樹。統(tǒng)計輸入字
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1