Skip to main content

Adjacency matrix list

#include<bits/stdc++.h>
using namespace std;
void add_edge(vector<int> adj[],int u,int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}
void print_graph(vector<int>adj[],int V)
{
    for(int i=0;i<V;i++)
    {
        for(auto x:adj[i])
            cout<<x<<"->";
        cout<<endl;
    }
}
int main()
{
    int V;
    cout<<"Enter the number of vertices"<<endl;
    cin>>V;
    vector<int> adj[V];
    while(1)
    {
        int x,y;
        cout<<"Enter the nodes"<<endl;
        cin>>x>>y;
        add_edge(adj,x,y);
        cout<<"Enter -1 to exit"<<endl;
        int t;
        cin>>t;
        if(t==-1)
            break;
    }
    print_graph(adj,V);
    return 0;
}

Comments

Popular posts from this blog

BFS of a graph

#include<bits/stdc++.h> using namespace std; class graph {     int v;     list<int> *adj; public:     graph(int v)     {         this->v=v;         adj=new list<int>[v];     }     void add_edge(int v,int w)     {         adj[v].push_back(w);     }     void bfs(int start); }; void graph:: bfs(int start) {     bool *visited=new bool[v];     for(int i=0;i<v;i++)         visited[i]=false;     visited[start]=true;     list<int> queue;     queue.push_back(start);     while(!queue.empty())     {         int s=queue.front();         cout<<s<...

Finding permutations of a string using recursion

#include<bits/stdc++.h> using namespace std; void print_perm(char str[],int k,int n) {     if(k==n)         cout<<str<<endl;     else     {         for(int i=k;i<n;i++)         {             swap(str[k],str[i]);             print_perm(str,k+1,n);             swap(str[k],str[i]);         }     } } int main() {     char str[20];     cout<<"Enter a string"<<endl;     cin>>str;     print_perm(str,0,strlen(str));     return 0; }

DFS of a graph

#include<bits/stdc++.h> using namespace std; class graph {     int v;     list<int> *adj; public:     graph(int v)     {         this->v=v;         adj=new list<int>[v];     }     void add_edge(int v,int w)     {         adj[v].push_back(w);     }     void dfs(int v);     void dfsSearch(int v,bool visited[]); }; void graph:: dfsSearch(int start,bool visited[]) {     visited[start]=true;     cout<<start<<" ";     for(auto itr=adj[start].begin();itr!=adj[start].end();itr++)     {         if (!visited[*itr])         {             dfsSearch(*itr,visited); ...