"рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо" рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдПрд╕рд╛рдЗрдХреНрд▓рд┐рдХ рдЧреНрд░рд╛рдл (рдбрд╛рдпрд░реЗрдХреНрдЯреЗрдб рдПрд╕рд╛рдЗрдХреНрд▓рд┐рдХ рдЧреНрд░рд╛рдлреНрд╕, рдЗрд╕рдХреЗ рдмрд╛рдж рдбреАрдПрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдХреЗ рд▓рд┐рдП рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╡рд░реНрдЯрд┐рдХрд▓ рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рдХреНрд░рдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдирд╛рд░реЗ рдХреЗ рд▓рд┐рдП , рд╡рд░реНрдЯреЗрдХреНрд╕ рдпреВ рдХреНрд░рдо рдореЗрдВ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╡реА рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЧреНрд░рд╛рдлрд╝ рдбреАрдПрдЬреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИредрдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреА рд╕рд╛рдордпрд┐рдХ рдЫрдБрдЯрд╛рдИ "5 4 2 3 1 0" рд╣реИред рдПрдХ рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдХрдИ рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рд╛рдордпрд┐рдХ рдЫрдБрдЯрд╛рдИ "4 5 2 3 1 0" рд╣реИред рд╕рд╛рдордпрд┐рдХ рдЫрдБрдЯрд╛рдИ рдореЗрдВ рдкрд╣рд▓рд╛ рд╢реАрд░реНрд╖ рд╣рдореЗрд╢рд╛ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╢реАрд░реНрд╖ рд╣реИред
рд╕рдВрд╕реНрдерд╛рдирд┐рдХ рдЫрдВрдЯрд╛рдИ рдмрдирд╛рдо рдЧрд╣рд░реА рдХреА рдкреИрджрд▓ рджреВрд░реА рдкрд░:рдЬрдм рдЧрд╣рд░реА рдЬрд╛ рд░рд╣рд╛(рдбреЗрдкреНрде рдлрд░реНрд╕реНрдЯ рдЯреНрд░реИрд╡рд░реНрд╕рд▓, рдЗрд╕рдХреЗ рдмрд╛рдж рдбреАрдПрдлрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ ) рд╣рдо рд╢реАрд░реНрд╖ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрд╕рдиреНрди рдХреЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдбреАрдПрдлрдПрд╕ рдХрд╣рддреЗ рд╣реИрдВред рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕рдореАрдкрд╕реНрде рдХреЛрдиреЗ рдХреЗ рд╕рд╛рдордиреЗ рд╢реАрд░реНрд╖ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ, рд╡рд░реНрдЯреЗрдХреНрд╕ "5" рдХреЛ рд╡рд░реНрдЯреЗрдХреНрд╕ "0" рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдбреАрдПрдлрдПрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд , рд╡рд░реНрдЯреЗрдХреНрд╕ "4" рдХреЛ рднреА рд╡рд░реНрдЯреЗрдХреНрд╕ "0" рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдбреАрдПрдлрдПрд╕ рд╕реЗ рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЙрд▓рдо рдХрд╛ DFS "5 2 3 1 0 4" рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИредрдЕрдиреБрд╢рдВрд╕рд╛: рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ редрд╕рд╛рдордпрд┐рдХ рдЫрдБрдЯрд╛рдИ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдоредрдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ DFS рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ ред рд╣рдо рдбреАрдПрдлрдПрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЧреНрд░рд╛рдл рдХрд╛ рдПрдХ рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛред рдореЗрдВ DFSрд╣рдо рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╢реАрд░реНрд╖ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЕрдкрдиреЗ рдЖрд╕рдиреНрди рдХреЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: DFS рдХрд╣рддреЗ рд╣реИрдВред рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ, рд╣рдо рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╢реАрд░реНрд╖ рдХреЛ рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдкрд╣рд▓реЗ, рд╕рд╛рдордпрд┐рдХ рдЫрд╛рдВрдЯрдирд╛ рд╕рднреА рдЖрд╕рдиреНрди рдХреЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╢реАрд░реНрд╖ рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдХреЛрдиреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреИрдХ рдХреА рд╕рд╛рдордЧреНрд░реА рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рд╢реАрд░реНрд╖ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рднреА рдЖрд╕рдиреНрди рдХреЛрдиреЗ (рдФрд░ рдЙрдирдХреЗ рдЖрд╕рдиреНрди рдХреЛрдиреЗ, рдЖрджрд┐) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдЯреИрдХ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВредрдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдЙрдкрд░реЛрдХреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ рдЪрд┐рддреНрд░рдг рд╣реИ:
:
(G)
0 тЖТ
1тЖТ
2 тЖТ 3
3 тЖТ 1
4 тЖТ 0, 1
5 тЖТ 2, 0
1:
(0), visited[0] = true
. .
0
2:
(1), visited[1] = true
. .
0 1
3:
(2),, visited[2] = true
(3),, visited[3] = true
1 .
0 1 3 2
4:
(4),, visited[4] = true
рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ 0 рдФрд░ 1 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдирд╣реАрдВред
рд╕реНрдЯреИрдХ 0 1 3 2 4 4
рдЪрд░рдг 5:
рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ (5), рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛ [5] = рд╡рд╛рд╕реНрддрд╡рд┐рдХ
рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ 2 рдФрд░ 0 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрдЦреЗ рдЧрдП рд╣реИрдВред рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдирд╣реАрдВред
рд╕реНрдЯреИрдХ 0 1 3 2 4 5 5
рдЪрд░рдг 6:
рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рд╕рднреА рд╕реНрдЯреИрдХ рдЖрдЗрдЯрдо рдЦреАрдВрдЪреЗрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордпрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рдХреГрдкрдпрд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рдбреАрдПрдлрдЯреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рджрд┐рдП рдЧрдП рджреВрд╕рд░реЗ рдХреЛрдб рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдиреЛрдЯ рдХрд░реЗрдВредрд╕реА ++
#include<iostream>
#include <list>
#include <stack>
using namespace std;
class Graph
{
int V;
list<int> *adj;
void topologicalSortUtil(int v, bool visited[], stack<int> &Stack);
public:
Graph(int V);
void addEdge(int v, int w);
void topologicalSort();
};
Graph::Graph(int V)
{
this->V = V;
adj = new list<int>[V];
}
void Graph::addEdge(int v, int w)
{
adj[v].push_back(w);
}
void Graph::topologicalSortUtil(int v, bool visited[],
stack<int> &Stack)
{
visited[v] = true;
list<int>::iterator i;
for (i = adj[v].begin(); i != adj[v].end(); ++i)
if (!visited[*i])
topologicalSortUtil(*i, visited, Stack);
Stack.push(v);
}
void Graph::topologicalSort()
{
stack<int> Stack;
bool *visited = new bool[V];
for (int i = 0; i < V; i++)
visited[i] = false;
for (int i = 0; i < V; i++)
if (visited[i] == false)
topologicalSortUtil(i, visited, Stack);
while (Stack.empty() == false)
{
cout << Stack.top() << " ";
Stack.pop();
}
}
int main()
{
Graph g(6);
g.addEdge(5, 2);
g.addEdge(5, 0);
g.addEdge(4, 0);
g.addEdge(4, 1);
g.addEdge(2, 3);
g.addEdge(3, 1);
cout << "Following is a Topological Sort of the given graph \n";
g.topologicalSort();
return 0;
}
рдЬрд╛рд╡рд╛
import java.io.*;
import java.util.*;
class Graph
{
private int V;
private LinkedList<Integer> adj[];
Graph(int v)
{
V = v;
adj = new LinkedList[v];
for (int i=0; i<v; ++i)
adj[i] = new LinkedList();
}
void addEdge(int v,int w) { adj[v].add(w); }
void topologicalSortUtil(int v, boolean visited[],
Stack stack)
{
visited[v] = true;
Integer i;
Iterator<Integer> it = adj[v].iterator();
while (it.hasNext())
{
i = it.next();
if (!visited[i])
topologicalSortUtil(i, visited, stack);
}
stack.push(new Integer(v));
}
void topologicalSort()
{
Stack stack = new Stack();
boolean visited[] = new boolean[V];
for (int i = 0; i < V; i++)
visited[i] = false;
for (int i = 0; i < V; i++)
if (visited[i] == false)
topologicalSortUtil(i, visited, stack);
while (stack.empty()==false)
System.out.print(stack.pop() + " ");
}
public static void main(String args[])
{
Graph g = new Graph(6);
g.addEdge(5, 2);
g.addEdge(5, 0);
g.addEdge(4, 0);
g.addEdge(4, 1);
g.addEdge(2, 3);
g.addEdge(3, 1);
System.out.println("Following is a Topological " +
"sort of the given graph");
g.topologicalSort();
}
}
рдЕрдЬрдЧрд░
class Graph:
def __init__(self,vertices):
self.graph = defaultdict(list)
self.V = vertices
def addEdge(self,u,v):
self.graph[u].append(v)
def topologicalSortUtil(self,v,visited,stack):
visited[v] = True
for i in self.graph[v]:
if visited[i] == False:
self.topologicalSortUtil(i,visited,stack)
stack.insert(0,v)
def topologicalSort(self):
visited = [False]*self.V
stack =[]
for i in range(self.V):
if visited[i] == False:
self.topologicalSortUtil(i,visited,stack)
print stack
g= Graph(6)
g.addEdge(5, 2);
g.addEdge(5, 0);
g.addEdge(4, 0);
g.addEdge(4, 1);
g.addEdge(2, 3);
g.addEdge(3, 1);
print "Following is a Topological Sort of the given graph"
g.topologicalSort()
<b>:</b>
Following is a Topological Sort of the given graph
5 4 2 3 1 0
рд╕рдордп рдореЗрдВ рдХрдард┐рдирд╛рдИ: рдЙрдкрд░реЛрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рде рдбреАрдПрдлрдПрд╕ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдбреАрдПрдлрдПрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреЛ рдУ (рд╡реА + рдИ) рд╣реИредрдиреЛрдЯ: рдЖрдк рд╕реНрдЯреИрдХ рдХреЗ рдмрдЬрд╛рдп рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдЖрд╡реЗрджрди:рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдмреАрдЪ рджреА рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрджреЗрд╢реЛрдВ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ, рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд╕реВрддреНрд░ рдорд╛рдиреЛрдВ рдХреЛ рдкреБрди: рдкрд░рд┐рдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ, рд╕рдВрдХрд▓рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдХрдлрд╛рдЗрд▓реНрд╕, рдбреЗрдЯрд╛ рдХреНрд░рдорд╛рдВрдХрди, рдФрд░ рд▓рд┐рдВрдХрд░реНрд╕ рдореЗрдВ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкреБрди: рдирд┐рд░реНрдзрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ [ 2 ]редрд╕рдВрдмрдВрдзрд┐рдд рдЖрд▓реЗрдЦ
рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╣рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо : рдПрдХ рдФрд░ рдУ (рд╡реА + рдИ) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдоредрдПрдХ рдЙрдиреНрдореБрдЦ рдЪрдХреНрд░реАрдп рдЧреНрд░рд╛рдл рдХреЗ рд╕рднреА рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧрд╕рдВрджрд░реНрдн
http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/GraphAlgor/topoSort.htmhttp://en.wikipedia.org/wiki/Topro_sortingрдХреГрдкрдпрд╛ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк рдХреЛрдИ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рддрд╣рдд рд╡рд┐рд╖рдп рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реАред
рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВред