Assignment12
by zazagalaxy
HTML
<h1><center>Binary Trees</h1>
<h2><center>Assigment 12</h2>
<br>
<form>
Enter x value:<br>
<input type="text" id="x-value"><br>
<br>
Enter y value:<br>
<input type="text" id="y-value"><br>
<br>
<input type="button" value="Enter" id="click">
</form>
<div id="output"></div>
CSS
#click {
background-color: violet;
color: black;
margin-top: 10px;
margin-bottom: 10px;
width: 12em;
}
h1 {
color: violet;
}
h2 {
color: violet;
}
form {
color: violet;
}
body {
background-color: black;
}
div {
color: violet;
}
JavaScript
var key = 0;
var array = [];
var errors = [];
var result, total, x, y;
document.getElementById("click").onclick = function() {
myFormSubmit()
};
function myFormSubmit() {
array = [];
errors = [];
x = document.getElementById("x-value").value;
y = document.getElementById("y-value").value;
try {
if (x == "") throw "You didn't enter a x value.";
if (isNaN(x)) throw "Enter a numeric value for x. You entered " + x;
x = parseInt(x);
} catch (err) {
errors.push(err);
}
try {
if (y == "") throw "You didn't enter a y value.";
if (isNaN(y)) throw "Enter a numeric value for y. You entered " + y;
y = parseInt(y);
} catch (err) {
errors.push(err);
}
document.getElementById('output').innerHTML = errors.join("<br>");
if (errors.length == 0) {
var tree = new BinarySearchTree();
tree.insert(3);
tree.insert("*");
tree.insert("(");
tree.insert(x);
tree.insert("+");
tree.insert(5);
tree.insert("*");
tree.insert(y);
tree.insert(")");
tree.preOrderTraverse(calculate_expression);
}
}
function BinarySearchTree() {
var Node = function(key, value) {
this.key = key;
this.value = value;
this.left = null;
this.right = null;
};
var root = null;
this.insert = function(value) {
key++;
var newNode = new Node(key, value);
if (root === null) {
root = newNode;
} else {
insertNode(root, newNode);
}
};
this.preOrderTraverse = function(callback) {
preOrderTraverseNode(root, callback);
};
}
var insertNode = function(node, newNode) {
if (newNode.key < node.key) {
if (node.left === null) {
node.left = newNode;
} else {
insertNode(node.left, newNode);
}
} else {
if (node.right === null) {
node.right = newNode;
} else {
insertNode(node.right, newNode);
}
}
};
var preOrderTraverseNode = function(node, callback) {
if (node !== null) {
callback(node);
...