Code viewer for World: Binary tree (clone by Andr...

// Cloned by Andrew Merrigan on 13 Oct 2019 from World "Binary tree" by "Coding Train" project 
// Please leave this clone trail here.
 

// Modified port of "01_binary_tree_viz" from AI course by Daniel Shiffman
// https://github.com/nature-of-code/NOC-S17-2-Intelligence-Learning/tree/master/week1-graphs

// Daniel Shiffman
// Nature of Code: Intelligence and Learning
// https://github.com/shiffman/NOC-S17-2-Intelligence-Learning

// canvas size 
const cw = 900;
const ch = 600;
   
const root_x = cw / 2;
const root_y = ch / 10;
const ellipse_size = cw / 25;

// range of numbers
const MAX = 300;

// how many nodes 
const NONODES = MAX / 2;

// console log how we build the tree or not 
const SHOWBUILD = false;
// Binary tree
var tree;

function setup(){
  createCanvas(cw,ch);
  background("lightgrey")
  
    $.getScript ( "/uploads/andrewmerrigan/node.js", ()=> {
        $.getScript ( "/uploads/andrewmerrigan/tree.js", ()=> {
          
          // New tree
          tree = new Tree();

          console.log ("=== build tree =================");
          // Add random values
          for (var i = 0; i < NONODES; i++) 
          {
              var n = floor(random(0, MAX));
              // console.log ("adding node: " + n);
              tree.addValue(n);
          }

          // Traverse the tree and draw each node
          tree.traverse();

          // Search the tree for random number 
          var x = floor(random(0, MAX));
          AB.msg( "console log shows how we search a sorted tree quickly <br> search tree for " + x + "<br>" );
          console.log ( "=== search tree for " + x  + " ===================");
          
          var result = tree.search(x);

          if (result === null){
              AB.msg('not found', 2);
          } else {
              AB.msg('found', 2);
          }
          
        });
    });
}