下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第java中霍夫曼樹的示例分析一、基本介紹
二、霍夫曼樹幾個重要概念和舉例說明
構成霍夫曼樹的步驟
舉例:以arr={136781329}
publicclassHuffmanTree{
publicstaticvoidmAIn(String[]args){
int[]arr={13,7,8,3,29,6,1};
Noderoot=createHuffmanTree(arr);
preOrder(root);
//編寫一個前序遍歷的方法
publicstaticvoidpreOrder(Noderoot){
if(root!=null){
root.preOrder();
}else{
System.out.println(樹是空樹,無法遍歷~~
//創(chuàng)建赫夫曼樹的方法
*@paramarr需要創(chuàng)建成霍夫曼樹的數組
*@return創(chuàng)建好后的霍夫曼樹的root節(jié)點
publicstaticNodecreateHuffmanTree(int[]arr){
//第一步為了操作方便
//1.遍歷arr數組
//2.將arr的每個元素構成一個Node
//3.將Node放入到ArrayList中
ListNodenodes=newArrayListNode
for(intvalue:arr){
nodes.add(newNode(value));
while(nodes.size()1){
//排序從小到大
Collections.sort(nodes);
System.out.println(nodes=+nodes);
//取出根節(jié)點權值最小的兩顆二叉樹
//注意:如果是從大到小排列的:就應該取倒數第一個和倒數第二個
//(1)取出權值最小的節(jié)點(二叉樹)
NodeleftNode=nodes.get(0);
//(2)取出權值第二小的節(jié)點(二叉樹)
NoderightNode=nodes.get(1);
//(3)構建一顆新的二叉樹
Nodeparent=newNode(leftNode.value+rightNode.value);
parent.left=leftNode;
parent.right=rightNode;
//(4)從ArrayList刪除處理過的二叉樹
nodes.remove(leftNode);
nodes.remove(rightNode);
//(5)將parent加入到nodes
nodes.add(parent);
//返回赫夫曼樹的root節(jié)點
returnnodes.get(0);
//創(chuàng)建節(jié)點類
//為了讓Node對象支持排序Collections集合排序
//讓Node實現Comparable接口
classNodeimplementsComparableNode{
intvalue;//節(jié)點權值
Nodeleft;//指向左子節(jié)點
Noderight;//指向右子節(jié)點
publicNode(intvalue){
this.value=value;
//寫一個前序遍歷
publicvoidpreOrder(){
System.out.println(this);
if(this.left!=null){
this.left.preOrder();
if(this.right!=null){
this.right.preOrder();
@Override
publicStringtoString(){
returnNode[value=+value+]
@Override
publicintcompareTo(Nodeo){
//表示從小到大排列
returnthis.value-o.value;
}
霍夫曼編碼
一、基本介紹
二、原理剖析
6)說明:
原來長度是359,壓縮了(359-133)/359=62.9%
此編碼滿足前綴編碼,即字符的編碼都不能是其他字符編碼的前綴。不會造成匹配的多義性;
霍夫曼編碼是無損的壓縮處理方案
霍夫曼編碼壓縮文件注意事項
1)如果文件本身就是經過壓縮處理的,那么
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職通信技術(移動通信基礎)試題及答案
- 2025年高職中草藥栽培與加工技術(中藥炮制基礎)試題及答案
- 2025年大學(麻醉學)麻醉心理學試題及答案
- 2025年中職航空服務(客艙服務實務)試題及答案
- 2025年中職(煙草栽培)煙草大田移栽階段測試試題及答案
- 2025年大學醫(yī)學影像技術(CT影像診斷)試題及答案
- 2025年中職(農產品營銷與儲運)農產品儲存試題及答案
- 2025年中職物流類(物流故障處理)試題及答案
- 2025年大學化學工程與工藝(化工系統(tǒng)工程)試題及答案
- 2025年中職人工智能類(人工智能基礎常識)試題及答案
- 輸變電工程標準化施工作業(yè)卡變電工程
- MSA-測量系統(tǒng)分析模板
- 《國共合作與北伐戰(zhàn)爭》優(yōu)課一等獎課件
- 中國旅游客源國概況-第二章-中國海外客源市場分
- 《分散系》說課課件
- 中小學綜合實踐活動課程指導綱要
- 加油站綜合應急預案演練記錄
- YY/T 1183-2010酶聯(lián)免疫吸附法檢測試劑(盒)
- YY/T 0729.3-2009組織粘合劑粘接性能試驗方法第3部分:拉伸強度
- GB/T 5187-2008銅及銅合金箔材
- 農民工討薪突發(fā)事件應急預案
評論
0/150
提交評論