Answers for "kahn's algorithm"

C++
0

kahn's algorithm

//Topological sort using BFS (Kahn's Algorithm)
#include<bits/stdc++.h>
using namespace std;
void addedge(vector<int>adj[],int u,int v)
{
    adj[u].push_back(v);
}
void toposort(vector<int>adj[],int n)
{
    queue<int>q;
    vector<int>indegree(n,0);
    for(int i=0;i<n;i++)
    {
        for(auto it: adj[i])
        {
            indegree[it]++;
        }
    }
    for(int i=0;i<n;i++)
    {
        if(indegree[i]==0)
        {
            q.push(i);
        }
    }vector<int>topo;
    while(!q.empty())
    {
        int node=q.front();
        q.pop();
        topo.push_back(node);
        for(auto it:adj[node])
        {
            indegree[it]--;
            if(indegree[it]==0)
            {
                q.push(it);
            }
        }

    }
    int si=topo.size();
    for(int i=0;i<si;i++)
    {
        cout<<topo[i]<<" ";
    }
}
int main()
{
    int vertex,edges;
    cout<<"Enter the number of vertex and edges:"<<endl;
    cin>>vertex>>edges;
    vector<int>adj[vertex];
    int a,b;
    cout<<"Enter the links:"<<endl;
    for(int i=0;i<vertex;i++)
    {
        cin>>a>>b;
        addedge(adj,a,b);
    }
   // for(int i=0;i<vertex;i++)
    //{
        toposort(adj,vertex);
    //}

    return 0;
}
Posted by: Guest on August-16-2021

Browse Popular Code Answers by Language