tree
by chris richarde
HTML
<input type="button" value="Create Tree" onclick="input()" />
<br/> X value:
<input type="textbox" id="X" value=" " />
<br/> Y value:
<input type="textbox" id="Y" value=" " />
<p id="output"></p>
<p id="output2"></p>
JavaScript
var i = 0;
function input(){
clearDisplay();
array=[];
x = parseInt(document.getElementById("X").value);
y = parseInt(document.getElementById("Y").value);
if (!isNaN(x)&&!isNaN(y)&& x!=" " && y!=" "){
document.getElementById("output").innerHTML+= "submission acceptable : " + "3*( "+x + " + 5 * " + y+ " )";
var tree = new TNode();
tree.insert( 3);
tree.insert( "*");
tree.insert( "(");
tree.insert( x);
tree.insert( "+");
tree.insert( 5);
tree.insert( "*");
tree.insert( y);
tree.insert( ")");
tree.Traverse(calc);
}
else{
document.getElementById("output").innerHTML= "please enter number values for x and y";
}
}
function clearDisplay(){
document.getElementById("output").innerHTML="";
document.getElementById("output2").innerHTML="";
}
function TNode(){
var Node = function (i,value){
this.i=i;
this.value=value;
this.left=null;
this.right=null;
}
var root=null;
this.insert= function(value) {
i++;
var newNode = new Node(i,value);
if (root == null){
root=newNode;
}
else{
insertNode(root,newNode);
}
}
this.Traverse = function (pull){
TraverseNode(root,pull);
}
}
var insertNode=function (node,newNode){
if(newNode.i<node.i){
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 TraverseNode = function(node,pull){
if(node !=null){
pull(node);
TraverseNode(node.left,pull);
TraverseNode(node.right,pull);
}
}
function calc(node){
array.push(node);
if (array.length == 9) {
document.getElementById('output2').innerHTML ="the answer is " + (array[0].value * (array[3].value + (array[5].value * array[7].value)));
}
}