Tree Algorithms

Searching a Binary Search Tree

40241136554859
Nodes comparedlooking for 55

Nothing yet.

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

Look for 55 in a balanced tree of 7 values, 3 levels deep.

Settings

More options
How it was built

Search

  1. 1node = root
  2. 2while node:
  3. 3 if target == node.value: return node
  4. 4 if target < node.value:
  5. 5 node = node.left
  6. 6 else:
  7. 7 node = node.right
  8. 8return NOT_FOUND

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.