Sha256: 83ea3d64428139ec2760fd9f07cab73d9f467f74b01401681d32f9d2a7e7b8c4

Contents?: true

Size: 879 Bytes

Versions: 255

Compression:

Stored size: 879 Bytes

Contents

'use strict';

function BinarySearchTree(data) {
  this.data  = data;
  this.left  = undefined;
  this.right = undefined;
}

BinarySearchTree.prototype.insert = function(value) {
  if (value <= this.data) {
    this.insertLeft(value);
  } else {
    this.insertRight(value);
  }

  return this;
};

BinarySearchTree.prototype.insertLeft = function(value) {
  if (!this.left) {
    this.left = new BinarySearchTree(value);
  } else {
    this.left.insert(value);
  }

  return this;
};

BinarySearchTree.prototype.insertRight = function(value) {
  if (!this.right) {
    this.right = new BinarySearchTree(value);
  } else {
    this.right.insert(value);
  }

  return this;
};

BinarySearchTree.prototype.each = function(fn) {
  if (this.left)  { this.left.each(fn);  }
  fn.call(this, this.data);
  if (this.right) { this.right.each(fn); }
};

module.exports = BinarySearchTree;

Version data entries

255 entries across 255 versions & 1 rubygems

Version Path
trackler-2.2.1.37 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.36 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.35 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.34 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.33 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.32 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.31 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.30 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.29 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.28 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.27 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.26 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.25 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.24 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.23 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.22 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.21 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.20 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.19 tracks/javascript/exercises/binary-search-tree/example.js
trackler-2.2.1.18 tracks/javascript/exercises/binary-search-tree/example.js