這個題目是看到別人說的,也沒有oj判斷,題目大概是這個意思:比如
2 :111
1 :0
3: 110
構造哈夫曼樹,給你一串編碼 比如 1111100 讓你找出編碼所代表的原文,然後再輸出哈夫曼樹中每乙個結點被訪問的次數。
#include#include#includeusing namespace std ;
struct node
}*root;
char search(node *root,string target)
else
}else if(target[i]=='1')else }}
if(p->flag)
return p->value;
else
return '-';
}bool flag ;
void dfs(node *root,string deal,string res)
else
}p->flag = true ;
p->value = c_from;
}flag = false ;
dfs(root,deal,"");
}}
經過更改後,**如下,還可以方便的記錄訪問次數#include#include#includeusing namespace std ;
struct node
}*root;
string search(node *root,string target)
}else if(target[i]=='1')
}if(p->flag)
}return res ;
}int main()
p=p->left;
}else
p=p->right;}}
p->flag = true ;
p->value = c_from;
}cout <}
}
霍夫曼樹 編碼
用陣列儲存二叉樹,fun encrypt leaf 由葉子開始至根部編碼,這個儲存編碼串時從尾部開始儲存,對編碼好的字串進行拷貝時正好倒置 過來 fun encrypt recursion 從根部開始遞迴到葉子進行編碼 fun encrypt onrecurent 非遞迴無棧從根部到葉子進行編碼。思...
階段衝刺6
昨天做的事 將學生資訊輸入到 中,並顯示超連結形式,實現可點選進入到網頁模式 今天做的事 1.中滾動條的實現方法 2.怎麼為 中的某一項新增滑鼠事件。遇到的問題 1.在顯示 時無法正確顯示單元格。需要用到jtable中的setcolumnselectionallowed false 和setrows...
佇列實現霍夫曼樹
前面一節我們知道了,怎樣去建立乙個哈夫曼樹,這一節我們來看看哈夫曼編碼。思想 得到哈夫曼樹後,自頂向下按路徑編號,指向左節點的邊編號0,指向右節點的邊編號1,從根到葉節點的所有邊上的0和1連線起來,就是葉子節點中字元的哈夫曼編碼。下圖體現了哈夫曼編碼的過程 哈夫曼樹結點 typedef struct...