Preorder + Inorder + Postorder (Single Traversal)

One stack with state machine (1=PRE, 2=IN, 3=POST)

Read Here
Phase: Preorder
Step0/41
Distinct0
Pre[]
Back To Trees List

Python Code (Single Traversal)

18 if state == 1:
pre.append(node.data)
20 st.append((node, 2))
21 if node.left:
22 st.append((node.left, 1))
23 elif state == 2:
24 ino.append(node.data)
25 st.append((node, 3))
26 if node.right:
27 st.append((node.right, 1))
28 else:
29 post.append(node.data)
30
Current Line (19): Preorder Append

Tree Structure

1234567
Operation:PRE

Traversal Progress (3 Outputs)

PREINPOST

Current Node

-

Phase

Preorder

Pre Array (0)

No values yet...

In Array (0)

No values yet...

Post Array (0)

No values yet...
Step 1: PRE

State Stack

Stack is empty. Click Next to begin!

Step Explanation

Ready to Start

Click "Next Step" to begin. We will process each node in three phases: PRE -> IN -> POST.

  • > Stack stores tuples of (node, state) where state is 1, 2, or 3.
  • > Watch tree, stack, and all three arrays update together.
Unvisited
Left
Current
Right
Done