哈夫曼树

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了哈夫曼树脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

 

一、哈夫曼树的概念

  哈夫曼树又叫最优二叉树,显然哈夫曼树是建立在二叉树的基础上。

  我们先来了解几个基础概念:

    树根到树的每一个结点的路径长度之和为树的路径长度

    在结点数目相同的二叉树中,完全二叉树的路径长度最短。

    在一些应用中,给树中结点赋予某种意义的数值,此数值称为结点的权

    结点到树根之间的路径长度与该节点权的乘积称为结点的带权路径长度

    树中所有叶子结点的带权路径长度之和为树的带权路径长度

  结点数量相同且每个节点的权值相同的n个叶子结点构成的所有二叉树中,树的带权路径长度最小的二叉树称为哈夫曼树

  例如下图,c就是哈夫曼树:

  

哈夫曼树

 二、哈夫曼树的C++声明

template <typename ElemType>
class HuffmanTree:public SeqTree<ElemType>
{
    public:
        void display();
        void displayList();
        void dispalyTree();
        void createHuffmanInsideNode();
        void createHuffmanSeqTree();
        void huffmanCoding();
        int HuffmanSqListStatus();
        void inputHuffmanLeafList();
        bool isHuffmanSqTreeEmpty();
    private:
        MyHuffmanTreeSqList huffSqList;
        MySeqTree<EleType> huffSqTree;
};

 

  

 

脚本宝典总结

以上是脚本宝典为你收集整理的哈夫曼树全部内容,希望文章能够帮你解决哈夫曼树所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: