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

// Cloned by Nithin Sai K J on 4 Oct 2023 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 = 1300;
const ch = 900;
   
const root_x = cw / 2;
const root_y = ch / 10;
const ellipse_size = cw / 25;

// range of numbers
const MAX = 5000;

// how many nodes 
const NONODES = MAX;

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


// Binary tree
var tree;


function setup() 
{
  createCanvas(cw,ch);


$.getScript ( "/uploads/nithinsai/coding-train-node.js", function() {
   // console.log ("Got node");
    
    $.getScript ( "/uploads/nithinsai/coding-train-tree.js", function() {
        //  console.log ("Got tree");
            
        var timeStart = Date.now();
        // 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);
        }
        
        background("whitesmoke");
        
        // 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);
        }
    
        var timeEnd = Date.now();
        
        console.log("Time : ", (timeEnd-timeStart)/1000, "s")
    
    });
});
}