notes67

# notes67 - Topological Sort It is a sorting of the vertices...

This preview shows pages 1–4. Sign up to view the full content.

Topological Sort It is a sorting of the vertices such that if there is an edge (i,j) then i should appear in the sorting before j. An example Topological sort for the Graph above would be (A,B,C,D,E,F) or (A,C,B,D,E,F). (C,E,A,B,D,F) would not be a topological sort because there is an edge where A goes to C but C appears before A in the sorting. A topological sort is useful for scheduling of events that depend on each other. A topological sort would be a possible schedule of the execution, for example when building a house.

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Topological Sort (Foundation, Grass, Walls, Electric, Piping, Windows, End) Algorithm: Topological Sorting Input: A diagraph G with n vertices Output: An array “sorted” with the vertices in topological order. // We use a stack tom store the vertices with no dependencies Stack = {}
// Computed indegree of vertices. for each edge(u,w) v -> w indegree[w]++ // Put vertices without incident edges (no dependencies) in stack for all v in G do if indegree(v) == 0 push v in stack end end i = 0; // index of sorted while Stack is not empty u <- Stack.pop() // u has no dependencies // add to “sorted” Sorted[i] = u; i++; for all outgoing edges u->w (u,w) of u do //remove dependency of u on w indegree[w]--; if(indegree[w] == 0) push w into stack end end

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

## This note was uploaded on 02/02/2012 for the course CS 251 taught by Professor Staff during the Fall '08 term at Purdue.

### Page1 / 10

notes67 - Topological Sort It is a sorting of the vertices...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online