0% found this document useful (0 votes)
2 views

GraphTraversing

The document provides advanced notes on graph-traversal algorithms, specifically depth-first and breadth-first search methods. Depth-first search explores a branch fully before backtracking, while breadth-first search explores all nodes at the present depth before moving on. The document includes examples illustrating the traversal processes for both algorithms.

Uploaded by

19akintoyet
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

GraphTraversing

The document provides advanced notes on graph-traversal algorithms, specifically depth-first and breadth-first search methods. Depth-first search explores a branch fully before backtracking, while breadth-first search explores all nodes at the present depth before moving on. The document includes examples illustrating the traversal processes for both algorithms.

Uploaded by

19akintoyet
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

AQA Computer Science A-Level

4.3.1 Graph-traversal
Advanced Notes

www.pmt.education
Specification:

4.3.1.1 Simple graph-traversal algorithms


Be able to trace breadth-first and depth-first search algorithms and
describe typical applications of both. Breadth-first: shortest path for an
unweighted graph. Depth-first: Navigating a maze.

www.pmt.education
Graph-Traversal
Graph-traversal is the process of​ visiting each vertex​ in a
graph​. There are two algorithms in this section -
depth-first​ and ​breadth-first​ graph-traversals. In a
depth-first search, a ​branch​ is​ fully explored ​before
backtracking, whereas in a breadth-first search a ​node​ is
fully explored​ before venturing on to the next node.

Depth-First Search
Depth-first traversal uses a ​stack​. Depth-first
traversal is used for ​navigating a maze​. The
following example uses a tree, but a depth-first
algorithm can be performed on any ​connected
graph​.

www.pmt.education
Example 1:
Here is a graph. This is a ​binary-tree​.

A graph traversal can ​start from any node​, but for


simplicity, the ​root node​ F will be chosen.

As F is a new node, it will be added to the ​result​ and to


the ​stack​. To show F has been discovered, it has been
shaded blue.

www.pmt.education
Next, the nodes ​adjacent​ to F are observed. These
are B and G. B is higher alphabetically so B is
discovered first.

The undiscovered vertices adjacent to B are A and


D; A is less than D so A is discovered first.

www.pmt.education
There are ​no undiscovered nodes adjacent​ to A. Therefore, A can be
popped off the stack and labelled ​completely explored​, visually indicated by
the purple colour.

The next item in the stack is looked at - B.

www.pmt.education
B has an adjacent undiscovered node, so D is visited.

D has two adjacent undiscovered nodes, C and E. C is ​less than​ E so it is


discovered first.

www.pmt.education
C has no adjacent undiscovered nodes (it is ​completely explored​) so it is
popped off the stack, and the next item in the stack, D, is ​revisited​.

D is adjacent to just one undiscovered node, E.

www.pmt.education
E has no undiscovered adjacent node so it is​ completely explored​ and can
be removed from the stack. The next item on the stack, D, is ​revisited​.

D is ​completely explored​. It is popped off the stack and B is ​revisited​.

www.pmt.education
B is ​completely explored​. B is popped off the stack and F is ​revisited​.

F has an adjacent undiscovered node. G is discovered, added to the stack


and printed in the result.

www.pmt.education
H is the only undiscovered node adjacent to G.

From a human’s perspective, the procedure is complete as all nodes have


been visited. However, a computer cannot know this until the algorithm has
reached completion. H has no adjacent undiscovered nodes so it is
completely explored​.

www.pmt.education
G is ​completely explored ​so it is popped from the stack.

Finally, F is ​completely explored​.

www.pmt.education
There are no more items on the stack so the algorithm is complete.

Example 2:
Here is another graph. In this example, the graph is​ not ​a binary tree.

www.pmt.education
Any node​ can be chosen to traverse from. In this example, the start node
will be A.

The smallest node adjacent to A is B.

The smallest undiscovered node adjacent to B is C.

www.pmt.education
The smallest undiscovered node adjacent to C is F.

The smallest undiscovered node adjacent to F is E.

www.pmt.education
E has no undiscovered neighbours so it is ​completely explored​. It is popped
off the stack and the next item on the stack is ​revisited​.

F has one undiscovered neighbour, H.

www.pmt.education
G is H’s only undiscovered neighbour.

G has no adjacent nodes which have yet to be discovered. G is ​completely


explored​. G is popped off the stack, and the next item on the stack is
revisited​.

www.pmt.education
H is ​completely explored​.

F is ​completely explored​.

www.pmt.education
C is ​completely explored​.

B has an undiscovered adjacent node. D is added to the stack, becomes


discovered and is added to the result.

www.pmt.education
D has no undiscovered neighbours so it is popped from the stack, and the
next item (B) is ​revisited​.

B is ​completely explored.

www.pmt.education
A is ​completely explored​.

The stack is empty, so the ​algorithm terminates​ ​and


the result is printed.

www.pmt.education
Breadth-First Search
Breadth-first traversal uses a ​queue​. This algorithm
will work on any ​connected graph​. Breadth-first
traversal is useful for determining the ​shortest path
on an unweighted graph​.

Example 1:
Here is a graph.

This is an example of a ​binary tree​, but a breadth-first


traversal will work on any ​connected graph​. ​Any node
can be chosen as a starting position, but as this is a
binary tree it makes logical sense to start from the root
F. F is ​discovered​.

www.pmt.education
The undiscovered nodes adjacent to F are added to the queue and the
result in alphabetical order.

Because all of it’s adjacent nodes are discovered, F can be said to be


completely explored​ (represented by the purple colouring)

www.pmt.education
Now that F is ​completely explored​, we can move on to the next node. To do
this, we look at the first position of the queue. B is removed from the top of
the queue, so this is the next node to be inspected. The undiscovered
nodes adjacent to B are added to the queue and results - A and D have
been​ ​discovered​.

B is now ​completely discovered​.

www.pmt.education
The next item in the queue is removed and inspected.

G has one adjacent undiscovered node. H is added to the result and to the
queue.

www.pmt.education
G is now ​completely explored​.

A is next in the list. It is removed and inspected.

www.pmt.education
There are no undiscovered vertices adjacent to A, so it is ​completely
explored​.

D is the next item in the queue.

www.pmt.education
D has two adjacent undiscovered nodes which are put into the queue and
the result in alphabetical order.

D is ​completely explored​.

www.pmt.education
The next item in the queue is H.

H has no adjacent undiscovered nodes so it is ​completely explored​.

www.pmt.education
C is inspected next.

C is ​completely explored​.

www.pmt.education
Finally, E is at the top of the queue.

E is ​completely explored​.

www.pmt.education
There are no more items in the queue, so the ​algorithm terminates ​and the
result is printed.

Example 2:
Here is another graph. In this example, the graph is ​not​ a ​binary tree​.

www.pmt.education
Any node​ can be chosen for graph-traversal. For this example, we will start
with A.

All nodes adjacent to A are placed in the queue as they are discovered in
alphabetical order and are added to the result.

A has been ​completely explored​.

www.pmt.education
The next node is taken from the queue.

The undiscovered node adjacent to B is added to the queue and the result.

www.pmt.education
B is now ​completely explored​.

D is next to be explored.

www.pmt.education
D has no adjacent undiscovered nodes so it is ​completely explored​.

The head of the queue is E.

www.pmt.education
E has one adjacent undiscovered vertex - F.

E has been ​completely explored​.

www.pmt.education
C is next to be explored.

The only node adjacent to C is added to the queue and result.

www.pmt.education
C is ​completely explored​.

F is next in the queue.

www.pmt.education
F has no adjacent undiscovered nodes so F is ​completely explored​.

H is the next item in the queue.

www.pmt.education
H’s only undiscovered neighbour is added to the queue and the result.

H is now ​completely explored​.

www.pmt.education
Finally, G is removed from the queue and explored.

G has no adjacent undiscovered nodes. It is ​completely explored​.

www.pmt.education
The queue is empty, so the ​algorithm terminates​.

www.pmt.education

You might also like