设为首页 加入收藏

TOP

哈夫曼树与哈夫曼编码详解及C++模板实现(二)
2016-12-06 20:24:36 】 浏览:545
Tags:编码 详解 模板 实现
id Huffman ::destory(HuffmanNode * pnode) { if( pnode!= NULL) { destory(pnode->lchild); destory(pnode->rchild); delete pnode; pnode = NULL; } }; template void Huffman ::destory() { destory(root); };

哈夫曼树代码测试

int main()
{
    Huffman
  
    huff;
    int a[] = {10,20,30,40};
    huff.creat(a,4);
    huff.print();
    return 0;
}
  

输出结果:

当前结点:100.它的左孩子结点为:40.它的右孩子结点为:60.
当前结点:40.它没有左孩子.它没有右孩子.
当前结点:60.它的左孩子结点为:30.它的右孩子结点为:30.
当前结点:30.它没有左孩子.它没有右孩子.
当前结点:30.它的左孩子结点为:10.它的右孩子结点为:20.
当前结点:10.它没有左孩子.它没有右孩子.
当前结点:20.它没有左孩子.它没有右孩子.

昨天下午就开始写了,本来使用deque双向队列来存储森林中树的根节点,结果在排序找出权值最小的两棵树的时候遇到了麻烦,换了几种方式都是编译错误,折磨了几个小时。后来选择用数组来存储,今天下午试着写了一下,总算整出来了,还有待优化,分享一下吧,整个思路过程都有注释,下来在慢慢改。下面看哈夫曼编码。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++11的模板类型判断:std::is_sa.. 下一篇c++中的参数传递方式

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目