BST In-Order Traversal

Traverse a binary search tree left-root-right with an explicit stack to emit keys in sorted order.

Time O(n) Space O(h) Binary Search Tree inorder

How it works

Traverse a binary search tree left-root-right with an explicit stack to emit keys in sorted order.

Implementation

function bstInorderOp(state) {
  const keys = state.keys;
  const left = state.left;
  const right = state.right;
  const stack = [];
  let current = state.root;
  while (current !== -1 || stack.length > 0) {
    while (current !== -1) {
      visitNode(current);
      stack[stack.length] = current;
      current = left[current];
    }
    current = stack[stack.length - 1];
    stack.length = stack.length - 1;
    traverseNode(current);
    current = right[current];
  }
  finish();
}