Computer Science Homework Solutions
Problem
#73576

Topological Sorting

An algorithm for computing a topological ordering of a DAG (Directed Acyclic Graph) repeatedly finds a node with no incoming edges and deletes it. This will eventually produce a topological ordering, provided that the input graph really is a DAG.

But suppose that we're given an arbitrary graph that may or may not be a DAG. Extend the topological ordering algorithm so that given an input directed graph G it outputs one of two things: (a) a topological ordering, thus establishing that G is a DAG; or (b) a cycle in G, and
thus establishing that G is not a DAG. The running time of your algorithm should be O(m+n) for a directed graph with n nodes and medges.

Solution
What is this?
By OTA - Overall OTA Rating
Purchase Cost Now
$2.19 CAD
Included in Download
  • Plain text response
  • Attached file(s):
    • TopologicalSorting.pdf
$2.19 Instant Download
Add to Cart
Why you can trust BrainMass.com
  • Your Information is Secure
  • Best Online Academic Help Service
  • Students find real academic Success
Related Solutions
  • BFS, DFS, DAGs, Topological sorting, and Dijkstra - What are the feature differences/tradeoff between Breath First search(BFS), Depth-Fisrt-Search(DFS), Directed Acyclic Graphs(DAGs), Topological sorting and Dijkstra?
  • Oral History Data Organization - You are helping scientists analyze oral history data they have collected by interviewing members of a village. From these interviews they have learned about a set of n people (all are dead now) who ...
  • Oral History Data Organization - You are helping scientists analyze oral history data they have collected by interviewing members of a village. From these interviews they have learned about a set of n people (all are dead now) who ...
  • How to draw a DAG (directed acyclic graph) for the given code snippet? - Explain, how to draw a DAG for following loop: do i=1, 10, 1 x(i)=a(i)-b(i) y(i)=a(i)+b(i) d(i)=x(i)/(1+y(i)) end do
  • Sorting Algorithm - Please assist so that I can complete the following: You will create a program that runs a sorting algorithm on a set of randomized values. Your program should run the algorithm several times, to ge ...
Browse