// Cloned by Paul Geoghegan on 26 Oct 2020 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 = 1500;
const MIN = 200;
// how many nodes
const NONODES = MIN *5;
// console log how we build the tree or not
const SHOWBUILD = true;
// Binary tree
var tree;
function setup()
{
// createCanvas(cw,ch);
//noCanvas();
$.getScript ( "/uploads/paul8420/node.js", function() {
// console.log ("Got node");
$.getScript ( "/uploads/paul8420/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(MIN, MAX));
// console.log ("adding node: " + n);
tree.addValue(n);
}
// background("lightgreen");
// Traverse the tree
tree.traverse();
// Search the tree for random number
var searchstart = Date.now();
var x = floor(random(MIN, MAX));
AB.msg( "Number of Nodes is fixed at " +NONODES + "<br>", 1);
AB.msg( "Random search value ranges from: " + MIN +" to " + MAX + "<br>", 2);
AB.msg( "console log shows how we search a sorted tree quickly <br> Search tree for: " + x + "<br>",3);
console.log ( "=== search tree for " + x + " ===================");
var result = tree.search(x);
if (result == null) AB.msg('Not Found'+ "<br>", 4);
else AB.msg('Found'+ "<br>", 4);
var searchstop = Date.now();
var searchtime = searchstop -searchstart;
AB.msg('Time needed to search tree: '+searchtime +"miliseconds",5);
} );
} );
}