Code viewer for World: Binary tree -State Search
// Cloned by Laura Campbell on 4 Oct 2022 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 = 700;
   
const root_x = cw / 12;
const root_y = ch / 2;
const ellipse_size = cw / 50;

// range of numbers
const MAX = 40000;

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

// console log how we build the tree or not 
const SHOWBUILD = true;

// Binary tree
var tree;


function setup() {
  createCanvas(cw,ch);
  background("ivory")
    $.getScript ( "/uploads/lauracampbell26/node.js", function() {
   // console.log ("Got node");
    $.getScript ( "/uploads/lauracampbell26/tree.js",function() {
      //  console.log ("Got tree");
              
    // 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
  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);
  }

        });
    });
}