Tree Algorithms

In-Order Traversal of a Binary Search Tree

40241136554859
Output so far

Nothing yet.

  • Not reached
  • On the stack
  • Current
  • Visited
1/19

In-Order walk over 7 values, 3 levels deep.

Settings

More options
How it was built

In-Order

  1. 1stack = []; node = root
  2. 2while node or stack:
  3. 3 while node:
  4. 4 stack.push(node)
  5. 5 node = node.left
  6. 6 node = stack.pop()
  7. 7 visit(node)
  8. 8 node = node.right

What Each Walk Is For

WalkWhat you getTimeExtra space
In-OrderValues in sorted orderO(n)O(h)
Pre-OrderRoot before children, for copying a treeO(n)O(h)
Post-OrderChildren before root, for freeing or evaluatingO(n)O(h)
Level-OrderShallowest nodes first, level by levelO(n)O(w)
SearchOne value, by comparing at each nodeO(h)O(1)

Scroll the table sideways for the rest of the columns.

n is the number of values, h the height of the tree and w its widest level. Built from sorted values, the tree gets a height of n. Balanced trees exist to prevent that.