University of South Florida JavaScript Binary Tree for Equation Project Hi, I need JavaScript and corresponding HTML code to do the following:
The Expression Tree is a specific case of a binary tree. When you write an equation, the computer stores the equation in a tree which stores both the operations and the expression order. I have included code base to create a binary tree as an example or you can use a basis and just expand/edit to meet the functionality below (see attached word doc).
You will create a binary tree representation of the equation: 3*(x + 5*y)
We will give an example 2 3 * 4 + 5
The expression tree for this is;
If we traverse the tree using left first traversal the first dead end node is 2, then traverse back up to and down to * and then down again to 3, then up to * and back down to 4 so the traversal order without intermediate points is
2, 3, 4, *, 5, +
The logical execution order is
3, 4, * = result
2, result, = result
result, 5, + = result
or if you were to put it in logical order 2 3*4 + 5 , our original equation. You will create a binary tree representation of the equation
3*(x + 5*y)
Hint: there are plenty of javascript code examples of creating a binary tree (http://www.nczonline.net/blog/2009/06/09/computer-science-in-javascript-binary-search-tree-part-1/ ). HTML CODE:
JavaScript:
var TNode = function(_content) {
this.parent = null;
this.left = null;
this.right = null;
this.content = _content;
}
TNode.prototype.addNode = function(_content) {
var _node = new TNode(_content);
// if no left – add to left
if (this.left == null) {
_node.parent = this;
this.left = _node;
return this;
}
if (this.right == null) {
_node.parent = this;
this.right = _node;
return this;
}
var leftN = this.left.numberOfChildren();
var rightN = this.right.numberOfChildren();
if (leftN < rightN) {
this.left.addNode(_content);
} else {
this.right.addNode(_content);
}
return this;
}
TNode.prototype.numberOfChildren = function() {
var n = 0;
if (this.left != null) {
n = 1 + this.left.numberOfChildren();
}
if (this.right != null) {
n = n + 1 + this.right.numberOfChildren();
}
return n;
}
TNode.prototype.print = function() {
var s = this.printNode();
if (this.left != null) {
s += this.left.print();
}
if (this.right != null) {
s += this.right.print();
}
return s;
}
TNode.prototype.printNode = function() {
var s = "Node: " + this.content;
if (this.left != null) {
s += " Left: " + this.left.content;
}
if (this.right != null) {
s = s + " Right: " + this.right.content;
}
s += "";
return s;
}
var BinaryTree = function() {
this.top = null;
this.addNode = function(_content) {
// If no top node - add to top
if (this.top == null) {
var _node = new TNode(_content);
this.top = _node;
return this;
}
// otherwise let node select
this.top.addNode(_content);
return this;
}
}
BinaryTree.prototype.print = function() {
if (this.top != null) return this.top.print();
}
function createTree() {
var tree = new BinaryTree();
tree.addNode('A');
tree.addNode('B');
tree.addNode('C');
tree.addNode('D');
tree.addNode('E');
tree.addNode('F');
tree.addNode('G');
tree.addNode('H');
document.getElementById("output").innerHTML = tree.print();
}
Purchase answer to see full
attachment
LDR 3302-21.01.01-1A24-S1, Organizational Theory and Behavior Unit III Essay Top of Form Bottom of Form…
Chapter 9 What are teratogens? Give 5 examples. Define each of these stages: Germinal, embryonic,…
You are a Financial Analyst that has been appointed to lead a team in the…
You are familiar with the ANA Code of Ethics and have a growing understanding of…
This week’s discussion will focus on management decision-making and control in two companies, American corporation…
Mary Rowlandson felt that the man who eventually came to own her, Quinnapin, was “the…