unsigned int count;//该字符的权值
1.初始化函数〔void HuffmanTree::Init(string Input)〕
算法伪代码:
2.获得输入字符串的第一个字符,并将其插入到链表尾部,n=1(n 记录的是链表
中字符的个数)
3.从字符串第2 个字符开始,逐个取出字符串中的字符
3.1 将当前取出的字符与链表中已经存在的字符逐个比拟,如果当前取出
的字符与链表中已经存在的某个字符相同,那么链表中该字符的权值加
1。
3.2 如果当前取出的字符与链表中已经存在的字符都不相同,那么将其参
加到链表尾部,同时n++
4.tSize=n(tSize 记录链表中字符总数,即哈夫曼树中叶子节点总数)
5.创立哈夫曼树
void HuffmanTree::Init(string Input)
{
Node *front=new Node;
if(!front)
throw exception("堆空间用尽");
front->next=NULL;
front->character=NULL;
front->count=0;
Node* New1=new Node;
if(!New1)
throw exception("堆空间用尽");
New1->character=ch;
New1->count=1;
New1->next=pfront->next;
pfront->next=New1;