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