1
2
3
4
5
6
7
8
0
s
t
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(0).
Is 0 == 7? No.
isMarked(1)? No.
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(1).
Is 1 == 7? No.
isMarked(0)? Yes.
isMarked(2)?
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(2).
Is 2 == 7? No.
isMarked(1)? Yes.
isMarked(5)?
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(5).
Is 5 == 7? No.
isMarked(2)? Yes.
isMarked(4)?
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(4).
Is 4 == 7? No.
isMarked(1)? Yes.
isMarked(3)? No.
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(3).
Is 3 == 7? No.
isMarked(4)? Yes.
No more neighbors! Return false.
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(4).
Is 4 == 7? No.
isMarked(1)? Yes.
isMarked(3)? No.
isMarked(5)? Yes.
No more neighbors, so return false.
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(5).
Is 5 == 7? No.
isMarked(2)? Yes.
isMarked(4)?
isMarked(6)?
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(6).
Is 6 == 7? No.
isMarked(5)? Yes.
isMarked(7)? No.
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(7).
Is 7 == 7? Yes. Return true!
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(6).
Is 6 == 7? No.
isMarked(5)? Yes.
isMarked(7)? No.
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(5).
Is 5 == 7? No.
isMarked(2)? Yes.
isMarked(4)?
isMarked(5)? Yes.
isMarked(6)?
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(2).
Is 2 == 7? No.
isMarked(1)? Yes.
isMarked(5)?
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(1).
Is 1 == 7? No.
isMarked(0)? Yes.
isMarked(2)?
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(0).
Is 0 == 7? No.
isMarked(1)? No.
*
connected(s, t):
s-t Connectivity
1
2
3
4
5
6
7
8
0
s
t
mark(0).
Is 0 == 7? No.
isMarked(1)? No.
*
connected(s, t):
s-t Connectivity