JSFiddle - React, Tailwind, and code Playground
by danbeam
JavaScript
// 5
// 3 7
// 2 4 6 8
// 1 9
function assert(cond) {
if (!cond)
throw 'fail';
}
function inOrder(node) {
if (!node)
return;
inOrder(node.left);
console.log(node.data);
inOrder(node.right);
}
function insertData(node, data) {
assert(node);
if (data < node.data) {
if (node.left)
insertData(node.left, data);
else
node.left = {data: data};
} else { // data >= node.data
if (node.right)
insertData(node.right, data);
else
node.right = {data: data};
}
}
var root = {data: 5};
var data = [3, 2, 1, 4, 7, 6, 8, 9];
for (var i = 0; i < data.length; ++i) {
insertData(root, data[i]);
}
console.log(root);
inOrder(root);