Untitled

 avatar
unknown
plain_text
a month ago
779 B
5
Indexable
include <stdio.h>
#include <stdlib.h>
#define V 6
void topologicalSortUtil(int v, int visited[], int stack[], int *top, int graph[V][V]) {
visited[v] = 1;
for (int i = 0; i < V; i++) {
if (graph[v][i] && !visited[i]) {
topologicalSortUtil(i, visited, stack, top, graph);
}
}
stack[(*top)++] = v;
}
18
void topologicalSort(int graph[V][V]) {
int stack[V], top = 0;
int visited[V] = {0};
for (int i = 0; i < V; i++) {
if (!visited[i]) {
topologicalSortUtil(i, visited, stack, &top, graph);
}
}
printf("Topological ordering: ");
while (top > 0) {
printf("%d ", stack[--top]);
}
printf("\n");
}
int main() {
int graph[V][V] = {{0, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 1, 0},
{0, 0, 0, 0, 0, 1},
{0, 0, 0, 0, 0, 1},
{0, 0, 0, 0, 0, 0}};
topologicalSort(graph);
return 0;
}
Editor is loading...
Leave a Comment