рд╕рд╛рдордпрд┐рдХ рдЫрдБрдЯрд╛рдИ

"рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо" рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред




рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдПрд╕рд╛рдЗрдХреНрд▓рд┐рдХ рдЧреНрд░рд╛рдл (рдбрд╛рдпрд░реЗрдХреНрдЯреЗрдб рдПрд╕рд╛рдЗрдХреНрд▓рд┐рдХ рдЧреНрд░рд╛рдлреНрд╕, рдЗрд╕рдХреЗ рдмрд╛рдж рдбреАрдПрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдХреЗ рд▓рд┐рдП рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╡рд░реНрдЯрд┐рдХрд▓ рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рдХреНрд░рдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдирд╛рд░реЗ рдХреЗ рд▓рд┐рдП , рд╡рд░реНрдЯреЗрдХреНрд╕ рдпреВ рдХреНрд░рдо рдореЗрдВ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╡реА рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЧреНрд░рд╛рдлрд╝ рдбреАрдПрдЬреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреА рд╕рд╛рдордпрд┐рдХ рдЫрдБрдЯрд╛рдИ "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:
рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рд╕рднреА рд╕реНрдЯреИрдХ рдЖрдЗрдЯрдо рдЦреАрдВрдЪреЗрдВ


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордпрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рдХреГрдкрдпрд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рдбреАрдПрдлрдЯреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рджрд┐рдП рдЧрдП рджреВрд╕рд░реЗ рдХреЛрдб рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдиреЛрдЯ рдХрд░реЗрдВред

рд╕реА ++


//   C++     DAG
 
#include<iostream>
#include <list>
#include <stack>
using namespace std;
  
//    
class Graph
{
    int V;	//  
  
    //    ,   
    list<int> *adj;
  
    // ,  topologicalSort
    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); // Add w to vтАЩs list.
}
  
//  ,  topologicalSort
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);
}
  
//     . 
//   topologicalSortUtil()
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;
}

рдЬрд╛рд╡рд╛


//   Java    
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); }
  
    //  ,  topologicalSort
    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));
    }
  
    //     .
    //   topologicalSortUtil()
    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();
    }
}
//      (Aakash Hasija)

рдЕрдЬрдЧрд░


#  Python       DAG   import defaultdict
  
#   
class Graph:
    def __init__(self,vertices):
        self.graph = defaultdict(list) #dictionary containing adjacency List
        self.V = vertices #No. of vertices
  
    #      
    def addEdge(self,u,v):
        self.graph[u].append(v)
  
    #  ,  topologicalSort
    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)
  
    #     . 
    #   topologicalSortUtil()
    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()
#     (Neelam Yadav)

<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.htm
http://en.wikipedia.org/wiki/Topro_sorting

рдХреГрдкрдпрд╛ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк рдХреЛрдИ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рддрд╣рдд рд╡рд┐рд╖рдп рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реАред



рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВред



All Articles