Lecture 24
Lecture 24
• Introduction.
• An Example.
• Implementation.
• Review Questions.
Introduction
Introduction
Introduction
• There are many problems involving a set of tasks in
which some of the tasks must be done before others.
• For example, consider the problem of taking a course
only after taking its prerequisites.
• Is there any systematic way of linearly arranging the
courses in the order that they should be taken?
)a( )b(
Definition of Topological Sort
Topological Sort is not unique
• Topological sort is not unique.
s1 = {a, b, c, d, e, f, g, h, i}
s2 = {a, c, b, f, e, d, h, g, i}
s3 = {a, b, d, c, e, g, f, h, i}
s4 = {a, c, f, b, e, h, d, g, i}
etc.
Topological Sort Algorithm
• One way to find a topological sort is to consider in-degrees of the vertices.
• The first vertex must have in-degree zero -- every DAG must have at least
one vertex with in-degree zero.
return numVisitedVertices;
}
Topological Sort Example
• Demonstrating Topological Sort.
1 2 3 0 2
A B C D E
F G H I J
1 0 2 2 0
D G A B F H J E I C
Review Questions