js 实现哈夫曼树

Posted 偏灬爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 实现哈夫曼树相关的知识,希望对你有一定的参考价值。

    ;(function(){
        var hash=function(arr){
            var me=this;
            me.arr=[];
            arr.forEach(i=>{
                me.arr.push({value:i});
            });
            me.createTree();
        };
        hash.prototype={
            constructor:hash,
            createTree:function(){
                var me=this;
                while(me.arr.length!==1){
                    var nodeA=me.findSmall(me.arr);
                    var nodeB=me.findSmall(me.arr);
                    var obj={};
                    obj.value=nodeA.value+nodeB.value;
                    obj.right=nodeB;
                    obj.left=nodeA;
                    me.arr.unshift(obj);
                }
            },
            findSmall:function(arr){
                var me=this;
                var tem=Infinity;
                var index=0;
                arr.forEach((i,ind)=>{
                    if(i.value<tem){
                        tem=i.value;
                        index=ind;
                    }
                });
                return  arr.splice(index,1)[0];
            }
        };
        new hash([9,12,6,3,5,15]);
    })();

 

以上是关于js 实现哈夫曼树的主要内容,如果未能解决你的问题,请参考以下文章

高级数据结构---赫(哈)夫曼树及java代码实现

怎么样用c语言程序编码哈夫曼树?

哈夫曼树(数组表示)仅代码

Java实现Huffman哈夫曼树(数组实现)

Java实现Huffman哈夫曼树

数据结构===哈夫曼编码实现/C或者C++