zoukankan      html  css  js  c++  java
  • javascript 哈夫曼树构造

      function Node(data) {
        this.data = data;
        this.left = null;
        this.right = null;
      }
    
      Array.prototype.createHufuTree = function() {
        var nodes = [];
        /*初始化结点*/
        for (var i = 0; i < this.length; i++) {
          nodes.push(new Node(this[i]));
        }
        while (nodes.length > 1) {
          nodes.sort(function(a, b) {
            return a.data - b.data;
          });
          var one = nodes.shift();
          var two = nodes.shift();
          var sum = one.data + two.data;
          /*构造结点*/
          var root = new Node(sum);
          root.left = new Node(one);
          root.right = new Node(two);
          nodes.unshift(root);
        }
        return nodes[0];
      }
    
      /*測试用例*/
      var datasarray = [1, 54, 23, 64, 53, 87, 97];
    
      var res = datasarray.createHufuTree();

  • 相关阅读:
    Shell Sort
    Insertion Sort
    Notations
    Nakamori Akina
    QuickSort
    Onedrive File Open Problem
    JSON Introduction
    System Call
    进程软中断通信
    Bubble Sort
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6738261.html
Copyright © 2011-2022 走看看