// Cloned by Jack O'Brien on 24 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 numbersconst MAX =6000;// how many nodes const NONODES = MAX /2;// console log how we build the tree or not const SHOWBUILD =false;// Binary treevar tree;function setup(){
createCanvas(cw,ch);
$.getScript ("/uploads/jobrien14/node.js",function(){// console.log ("Got node");
$.getScript ("/uploads/jobrien14/tree.js",function(){// console.log ("Got tree");// New tree
tree =newTree();
console.log ("=== build tree =================");// Add random valuesfor(var i =0; i < NONODES; i++){var n = floor(random(0, MAX));// console.log ("adding node: " + n);
tree.addValue(n);}
background("lightgreen");// 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</br>',2);else AB.msg('found</br>',2);
AB.msg('<button onclick="showTree()" class="normbutton" id="displaybutton">Hide Tree</button>',3)});});}function showTree(){
let canvas = document.getElementById('defaultCanvas0');if(canvas.style.display !='none'){
canvas.style.display ='none'
document.getElementById('displaybutton').innerHTML="Show Tree";}else{
canvas.style.display ='block'
document.getElementById('displaybutton').innerHTML="Hide Tree";}}