?? huffman_c.h
字號(hào):
#ifndef _HUFFMAN_C_HEADER_001_#define _HUFFMAN_C_HEADER_001_#include "huffman_base.h"// 使用Canonical Huffman編碼,同時(shí)對(duì)huffman_b的存儲(chǔ)結(jié)構(gòu)進(jìn)行// 改造,將二叉樹(shù)存放在連續(xù)空間tree里,空間的每個(gè)結(jié)點(diǎn)類型都// 和結(jié)點(diǎn)權(quán)值的數(shù)據(jù)類型相同,空間大小為2*num,tree[0]未用,// tree[1..num]是每個(gè)元素的權(quán)值。生成Huffman后,tree[1..2*num-1]// 中存儲(chǔ)的是雙親結(jié)點(diǎn)索引class huffman_c : public huffman_base{public: huffman_c() {} virtual ~huffman_c(void) {}public: void generate_codes(int num, const unsigned long* weights);protected: // 在HT[1..n]中選擇尚未連入Huffman樹(shù)且weight最小的兩個(gè)結(jié)點(diǎn),返回其序號(hào)s1和s2 void select(unsigned long* tree, bool* flags, int n, int& s1, int& s2);};#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -