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)));
    
  }
}