preorder tree traversals
recursive and iterative
by Christopher Stephens
HTML
<div class="print"></div>
JavaScript
var Node = function (value) {
this.value = value;
this.left;
this.right;
};
var root = new Node('A');
root.left = new Node('B');
root.left.left = new Node('C');
root.left.right = new Node('D');
root.right = new Node('E');
var print = function (printMe) {
$(".print").html($(".print").html() + printMe);
};
var preOrderRecurse = function (node) {
print(node.value);
node.left && preOrderRecurse(node.left);
node.right && preOrderRecurse(node.right);
};
var preOrderIterative = function (root) {
var stack = [root];
while (stack.length) {
var currentElement = stack.pop();
print(currentElement.value);
currentElement.right && stack.push(currentElement.right);
currentElement.left && stack.push(currentElement.left);
}
};
print('Recursive: ');
preOrderRecurse(root);
print('</br>');
print('Iterative: ');
preOrderIterative(root);