0% found this document useful (0 votes)
38 views9 pages

Traversing A Graph

The document describes Breadth First Search (BFS) and Depth First Search (DFS) graph traversal algorithms. BFS uses a queue while DFS uses a stack. Both algorithms initialize all nodes to a ready state, then process the starting node by changing its state and adding neighbors to the queue/stack. They repeatedly dequeue/pop nodes and enqueue/push neighbors until the queue/stack is empty. Examples demonstrate running BFS and DFS on a graph representing airline routes to find the shortest path or all reachable nodes from a starting point.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views9 pages

Traversing A Graph

The document describes Breadth First Search (BFS) and Depth First Search (DFS) graph traversal algorithms. BFS uses a queue while DFS uses a stack. Both algorithms initialize all nodes to a ready state, then process the starting node by changing its state and adding neighbors to the queue/stack. They repeatedly dequeue/pop nodes and enqueue/push neighbors until the queue/stack is empty. Examples demonstrate running BFS and DFS on a graph representing airline routes to find the shortest path or all reachable nodes from a starting point.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 9

Traversing a Graph

Traversing a Graph
 BFS: - It will use a queue
 DFS: - It will use a stack.
 During the execution of our algo, each node N of G will be in one of
three states, called the status of N, as follows:-
STATUS = 1: (Ready State). The initial state of the node N.
STATUS = 2: (Waiting State). The node N is on the queue/stack, waiting to
be processed.
STATUS = 3: (Processed State). The node N has been processed.
BFS (Breadth First Search)
 Algo: - This algo executes a BFS on a G beginning at a starting node A.
1. Initialize all node to the ready state (STATUS = 1).
2. Put the starting node A in QUEUE & change its status to the waiting state
(STATUS = 2).
3. Repeat Steps 4 & 5 until QUEUE is empty: -
4. Remove the front node N of QUEUE. Process N & change the status of N to
the processed state (STATUS = 3).
5. Add to the rear of QUEUE all the neighbors of N that are in the steady state
(STATUS = 1), & change their status to the waiting state (STATUS = 2).
[End of Step 3 loop.]
6. Exit.
Example:-
 Suppose G represents the daily flights b/w cities of some airlines. Suppose
we want to fly from city A to city J with the minimum number of stops.
(a) Initially, add A to QUEUE & add NULL to ORIG as follows:
FRONT = 1 QUEUE: A
REAR = 1 ORIG : Φ
(b) Remove the front element A from QUEUE by setting FRONT := FRONT + 1,
& add to QUEUE the neighbors of A as follows:
FRONT = 2 QUEUE: A, F, C, B
REAR = 4 ORIG : Φ, A, A, A
(c) Remove the front element F from QUEUE by setting FRONT := FRONT + 1,
& add to QUEUE the neighbors of F as follows:
FRONT = 3 QUEUE: A, F, C, B, D
REAR = 5 ORIG : Φ, A, A, A, F
(d) Remove the front element C from QUEUE, & add to QUEUE the neighbors
of C (which are in the Ready State) as follows:
FRONT = 4 QUEUE: A, F, C, B, D
REAR = 5 ORIG : Φ, A, A, A, F
Cont’d
e) Remove the front element B from QUEUE, & add to QUEUE the neighbors of
B (the ones in the ready state) as follows: FRONT = 5 QUEUE: A, F, C,
B, D, G REAR = 6 ORIG : Φ, A, A, A, F, B
f) Remove the front element D from QUEUE, & add to QUEUE the neighbors of
D (the ones in the ready state) as follows: FRONT = 6 QUEUE: A, F, C,
B, D, G REAR = 6 ORIG : Φ, A, A, A, F, B
g) Remove the front element G from QUEUE, & add to QUEUE the neighbors of
G (the ones in the ready state) as follows: FRONT = 7 QUEUE: A, F, C,
B, D, G, E REAR = 7 ORIG : Φ, A, A, A, F, B, G
h) Remove the front element E from QUEUE, & add to QUEUE the neighbors of
E (the ones in the ready state) as follows: FRONT = 8 QUEUE: A, F, C,
B, D, G, E, J REAR = 8 ORIG : Φ, A, A, A, F, B, G, E
We stop as soon as J is added to QUEUE, since J is our final destination.
[Backtracking from J.]
J←E←G←B←A
DFS (Depth First Search
 Algo: - This algo executes a DFS on a G beginning at a starting node A.
1. Initialize all node to the ready state (STATUS = 1).
2. Push the starting node A onto STACK & change its status to the waiting
state (STATUS = 2).
3. Repeat Steps 4 & 5 until STACK is empty: -
4. Pop the top node N of STACK. Process N & change the status of N to the
processed state (STATUS = 3).
5. Push onto STACK all the neighbors of N that are in the steady state
(STATUS = 1), & change their status to the waiting state (STATUS = 2).
[End of Step 3 loop.]
6. Exit.
Example:-
 Suppose G represents the daily flights b/w cities of some airlines. Suppose
we want to find & print all the nodes reachable from node J. By using DFS
(a) Initially, push J onto STACK as follows:
STACK: J
(b) Pop & print the top element J, & then push onto STACK all the neighbors of
J (those that are in the ready state) as follows:
Print J STACK: D, K
(c) Pop & print the top element K, & then push onto STACK all the neighbors of
K (those that are in the ready state) as follows:
Print K STACK: D, E, G
(d) Pop & print the top element G, & then push onto STACK all the neighbors of
G (those that are in the ready state) as follows:
Print G STACK: D, E, C
(e) Pop & print the top element C, & then push onto STACK all the neighbors of
C (those that are in the ready state) as follows:
Print C STACK: D, E, F
(f) Pop & print the top element F, & then push onto STACK all the neighbors of
F (those that are in the ready state) as follows:
Print F STACK: D, E
Cont’d
g) Pop & print the top element E, & then push onto STACK all the neighbors of
E (those that are in the ready state) as follows:
Print E STACK: D
h) Pop & print the top element D, & then push onto STACK all the neighbors of
D (those that are in the ready state) as follows:
Print D STACK: EMPTY
The stack is now empty, so that DFS of G starting at J is now complete.
J, K, G, C, F, E, D
Thank You!!!

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