Huffman编码实现

实现一个Huffman编码类

//霍夫曼编码 
#include 
#include  
#include 
using namespace std;

struct node{
	int freq;
	char c;
	node * left;
	node * right;
};

class HuffmanCode{//调用Insert插入字符与相应频率,完了以后调用HuffmanCoding返回结果。
	private:
		vector input;
		vector> result;
	public:
		node * ExtractMinFreq(vector &arg);//找到freq最小的指针
		vector> HuffmanCoding();//执行霍夫曼编码,返回编码结果的vector,pair里char对应字符,string对应编码 
		void Coding(node* arg,string str_tmp); //HuffmanCode里面调用的编码过程 
		void InsertNode(const char c, const int freq);//类插入数据的方法 
		void Delete(node *p);//执行完编码以后,清理掉树 
		void ShowTree(node *p);
};


int main(){
	HuffmanCode code;
	vector input;
	code.InsertNode('e',9);
	code.InsertNode('c',12);
	code.InsertNode('b',13);
	code.InsertNode('d',16);
	code.InsertNode('a',45);
	code.InsertNode('f',5);
	vector> result;
	result = code.HuffmanCoding();
	cout<<"result size="< tmp_pair;
	vector>::iterator it;
	for(it=result.begin();it!=result.end();it++){
		tmp_pair = *it;
		cout<<"char="<left==NULL)cout<<"NULL"<>(result);
	
	
}

 

你可能感兴趣的:(C++语言,算法导论)