Link
Tree and Graph Traversals
Formulating problems as graphs and solving them with depth-first search and breadth-first search.
Kevin Lin, with thanks to many others.
1

Tree Traversals
Give the following tree traversals.
Level-order traversal

Depth-first traversal
Preorder
Inorder
Postorder
2
A
C
B
D
E
F
G
Q
Give the following tree traversals.

Q1: Level-order traversal.




Q2: Preorder depth-first traversal.




Q3: Inorder depth-first traversal.




Q4: Postorder depth-first traversal.

Tree Traversals
Give the following tree traversals.
Level-order traversal

Depth-first traversal
Preorder
Inorder
Postorder
3
A
C
B
D
E
F
G
A

Depth-First Search
Give the order of dfs calls starting from 0. Visit neighbors in increasing order.
4
Q
0
1
4
5
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
2
3
6
Q1: Give the order of dfs calls starting from 0. Visit neighbors in increasing order.

Depth-First Search
Give the order of dfs calls starting from 0. Visit neighbors in increasing order.
5
A
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
5
2
3
6

Breadth-First Search
Give the BFS visit order starting from 0. Visit neighbors in increasing order.
6
Q
0
1
4
5
2
3
6
Q1: Give the BFS visit order starting from 0. Visit neighbors in increasing order.

Breadth-First Search
Give the BFS visit order starting from 0. Visit neighbors in increasing order.
7
A
0
1
4
5
2
3
6

Particle Detection
Given a black-white image of particles, identify “blobs”.
Formulate this as a graph problem.

Describe how to solve it.

8
Q
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
2
3
4
5
0
1
2
3
4
Given a black-white image of particles, identify “blobs”.

Q1: Formulate this as a graph problem.








Q2: Describe how to solve it.

Particle Detection
Given a black-white image of particles, identify “blobs”.
Formulate this as a graph problem.

Describe how to solve it.

9
A
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
2
3
4
5
0
1
2
3
4

Two-Coloring
How difficult is it to determine whether or not a graph is bipartite?
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

10
Q
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5
Q1: How difficult is it to determine whether or not a graph is bipartite?

Two-Coloring
How difficult is it to determine whether or not a graph is bipartite?
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

11
A
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5

Cycle Detection 1
How difficult is it to determine whether or not a graph has a cycle? (0-5-6-4-0)
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

12
Q
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5
Q1: How difficult is it to determine whether or not a graph has a cycle? (0-5-6-4-0)

Cycle Detection 1
How difficult is it to determine whether or not a graph has a cycle? (0-5-6-4-0)
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

13
A
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5
Q1: How difficult is it to determine whether or not a graph has a cycle? (0-5-6-4-0)

Cycle Detection 2
How difficult is it to determine whether or not a graph has a cycle using every edge exactly once? (0-1-2-3-4-2-0-6-4-5-0)
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

14
Q
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5
Q1: How difficult is it to determine whether or not a graph has a cycle using every edge exactly once? (0-1-2-3-4-2-0-6-4-5-0)

Cycle Detection 2
How difficult is it to determine whether or not a graph has a cycle using every edge exactly once? (0-1-2-3-4-2-0-6-4-5-0)
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

15
A
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5
Q1: How difficult is it to determine whether or not a graph has a cycle using every edge exactly once? (0-1-2-3-4-2-0-6-4-5-0)

Cycle Detection 3
How difficult is it to determine whether or not a graph has a cycle using every vertex exactly once? (0-5-3-4-6-2-1-0)
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

16
Q
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5
Q1: How difficult is it to determine whether or not a graph has a cycle using every vertex exactly once? (0-5-3-4-6-2-1-0)

Cycle Detection 3
How difficult is it to determine whether or not a graph has a cycle using every vertex exactly once? (0-5-3-4-6-2-1-0)
CSE 332 student could do it.
Hire an expert.
Intractable.
No one knows.

17
A
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton)
0
1
4
2
3
6
5
Q1: How difficult is it to determine whether or not a graph has a cycle using every vertex exactly once? (0-5-3-4-6-2-1-0)

Graph Traversal Problems
18
Algorithms (Robert Sedgewick, Kevin Wayne/Princeton), Determinant Sums for Undirected Hamiltonicity (Andreas Björklund/arXiv)
Graph Problem
DFS
BFS
Runtime
s–t path
✓
✓
O(E + V)
s–t shortest path
✓
O(E + V)
connected components
✓
✓
O(E + V)
bipartite (odd cycle)
✓
✓
O(E + V)
cycle
✓
✓
O(V)
Euler cycle
✓
O(E + V)
Hamilton cycle
O*(1.657V)