#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED
typedef short int Bool;
class HuffmanTreeNode{
private:
float m_weight;
short int m_parent, m_lchild, m_rchild;
public:
void SetWeight();
const float & GetWeight();
const short int & GetLchild();
const short int & GetRchild();
const short int & GetParent();
void ResetMember(int, int, int);
void ResetWeight(float);
void ResetParent(short int);
void ResetLchild(short int);
void ResetRchild(short int);
Bool IsRootNode();
};
class HuffmanCode{
private:
int m_huffman_node_num;
char ** m_char_code;
HuffmanTreeNode * m_huffman_tree_ptr;
protected:
void SetCharNum();
void GetTwoMinWeight(int &, int &);
public:
HuffmanCode();
~HuffmanCode();
Bool CreatHuffmanTree();
void HuffmanCoding();
void ShowCharCode();
void StrHuffmanCoding();
void StrHuffmanDecoding();
};
#endif // TEST_H_INCLUDED
#include "test.h"
#include <iostream>
#include <cfloat>
#include <cstring>
#include <cstdio>
void HuffmanTreeNode::SetWeight(){
std::cin >> m_weight;
}
const float & HuffmanTreeNode::GetWeight(){
return m_weight;
}
const short int & HuffmanTreeNode::GetParent(){
return m_parent;
}
const short int & HuffmanTreeNode::GetLchild(){
return m_lchild;
}
const short int &am