0% found this document useful (0 votes)
58 views24 pages

Adjacancy Lists: A (A, C, G) A (B, S) A (A) A (D, E, F, S) A (C) A (C, H) A (C, G) A (F, H, S) A (E, G)

The document describes breadth-first search (BFS), an algorithm for traversing graphs. It provides an example graph with vertices labeled A through H and adjacency lists showing connections between vertices. The BFS algorithm is explained as maintaining a queue of vertices to visit, beginning with the source vertex S, and exploring the neighbors of each vertex before visiting the next vertex in the queue. The example graph is traversed step-by-step using BFS to determine the distance from S to each other vertex.

Uploaded by

agranir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views24 pages

Adjacancy Lists: A (A, C, G) A (B, S) A (A) A (D, E, F, S) A (C) A (C, H) A (C, G) A (F, H, S) A (E, G)

The document describes breadth-first search (BFS), an algorithm for traversing graphs. It provides an example graph with vertices labeled A through H and adjacency lists showing connections between vertices. The BFS algorithm is explained as maintaining a queue of vertices to visit, beginning with the source vertex S, and exploring the neighbors of each vertex before visiting the next vertex in the queue. The example graph is traversed step-by-step using BFS to determine the distance from S to each other vertex.

Uploaded by

agranir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Breadth First Search: an example

S
A
G H
E
C
F
D B
Take S to be the source vertex.
Adjacancy Lists:
A
S
= {A, C, G}
A
A
= {B, S}
A
B
= {A}
A
C
= {D, E, F, S}
A
D
= {C}
A
E
= {C, H}
A
F
= {C, G}
A
G
= {F, H, S}
A
H
= {E, G}
Breadth First Search: the algorithm
Given G(V, E) represented in terms of adjacency lists A
v
and a distinguished
source vertex s V , nd d(v) d(s, v) for all v V .
1 Set things up:
d(v) for all v = s V
d(s) 0 and Q {s}
2 Main loop: continues until the queue is empty
While ( Q = ) {
Pop a vertex v o the left end of Q.
Examine each of vs neighbours
For each w A
v
{
If( d(w) = ) then {
Set d(w) and get ready to process ws neighbours
d(w) d(v) + 1
Push w on to the right end of Q.
}
}
}
Breadth First Search: in action
S
0
A
G H
E
C
F
D B
Yellow vertex is the source
vertex, S.
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
S
= {A, C, G}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
S
= {A, C, G}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
1
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
S
= {A, C, G}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
A
= {B, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
A
= {B, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
C
= {D, E, F, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
C
= {D, E, F, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
C
= {D, E, F, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
C
= {D, E, F, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
G
= {F, H, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
G
= {F, H, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
G
= {F, H, S}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
B
= {A}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
D
= {C}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
E
= {C, H}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
E
= {C, H}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
F
= {C, G}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
F
= {C, G}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
H
= {E, G}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
Yellow vertex is v, red is w.
A
v
= A
H
= {E, G}
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}
Breadth First Search: in action
S
0
1 1
2
2
2
2
1
2
A
G H
E
C
F
D B
v w Action Queue
Start {S}
S A set d(A) = 1 {A}
S C set d(C) = 1 {A, C}
S G set d(G) = 1 {A, C, G}
A B set d(B) = 2 {C, G, B}
A S none, as d(S) = 0 {C, G, B}
C D set d(D) = 2 {G, B, D}
C E set d(E) = 2 {G, B, D, E}
C F set d(F) = 2 {G, B, D, E, F}
C S none {G, B, D, E, F}
G F none {B, D, E, F}
G H set d(H) = 2 {B, D, E, F, H}
G S none {B, D, E, F, H}
B A none {D, E, F, H}
D C none {E, F, H}
E C none {F, H}
E H none {F, H}
F C none {H}
F G none {H}
H E none {}
H G none {}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy