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]); })();
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步