Assignment 12
Binary Trees
by Jenni Meiklejohn
HTML
<h1><center> Assignment 12 <br> Binary Trees </center></h1> x:
<input type="number" id="x" value="2">
<br> y:
<input type="number" id="y" value="2">
<br>
<br>
<input type="button" value="Calculate (3*(x + 5*y))" id="input" onclick="createTree()">
<div id="output"></div>
JavaScript
function TNode() {
var Node = function(parent, content) {
this.parent = null;
this.content = content;
this.left = null;
this.right = null;
};
var base = null;
this.baseNode = function(content) {
var _node = new Node(parent, content);
if (base === null) {
base = _node;
} else {
addNode(base, _node);
}
}
this.order = function(_content) {
tNode(base, _content);
};
}
var addNode = function(node, _node) {
if (_node.parent < node.parent) {
if (node.left === null) {
node.left = _node;
} else {
addNode(node.left, _node);
}
} else {
if (node.right === null) {
node.right = _node;
} else {
addNode(node.right, _node);
}
}
};
var tNode = function(node, _content) {
if (node !== null) {
_content(node);
tNode(node.left, _content);
tNode(node.right, _content);
}
};
function calculate(node) {
array.push(node);
if (array.length == 9) {
equals = array[0].content * (array[3].content + array[5].content * array[7].content);
output = ("<br>Equation: 3*(x + 5*y)<br>" + "<br> x = " + x + "<br> y = " + y + "<br> output = " + equals);
return document.getElementById('output').innerHTML = output;
}
}
function createTree() {
array = [];
x = parseInt(document.getElementById("x").value);
y = parseInt(document.getElementById("y").value);
var tree = new TNode();
tree.baseNode(3);
tree.baseNode("*(");
tree.baseNode("(");
tree.baseNode(x);
tree.baseNode("+");
tree.baseNode(5);
tree.baseNode("*");
tree.baseNode(y);
tree.baseNode(")");
tree.order(calculate);
}