Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C++ Program to Perform Greedy Coloring
Here is a C++ Program to Perform Greedy Coloring
Algorithm:
Begin Take the number of vertices and edges as input. Create function greedyColoring() to assign color to vertices: A) Assign the first color to first vertex. B) Initialize the remaining vertices. C) Declare a temporary array to store the available colors. D) Assign color to the remaining vertices. Print the solution. End
Example Code
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int n,e,i,j;
vector<vector<int> > g;
vector<int> col;
bool visit[1001];
void greedyColoring()
{
col[0] = 0;
for (i=1;i<n;i++)
col[i] = -1;
bool unuse[n];
for (i=0;i<n;i++)
unuse[i]=0;
for (i = 1; i < n; i++)
{
for (j=0;j<g[i].size();j++)
if (col[g[i][j]] != -1)
unuse[col[g[i][j]]] = true;
int cr;
for (cr=0;cr<n;cr++)
if (unuse[cr] == false)
break;
col[i] = cr;
for (j=0;j<g[i].size();j++)
if (col[g[i][j]] != -1)
unuse[col[g[i][j]]] = false;
}
}
int main()
{
int a,b;
cout<<"Enter number of vertices and edges respectively:";
cin>>n>>e;
cout<<"\n";
g.resize(n);
col.resize(n);
memset(visit,0,sizeof(visit));
for(i=0;i<e;i++)
{
cout<<"\nEnter edge vertices of edge "<<i+1<<" :";
cin>>a>>b;
a--; b--;
g[a].push_back(b);
g[b].push_back(a);
}
greedyColoring();
for(i=0;i<n;i++)
{
cout<<"Vertex "<<i+1<<" is coloured with "<<col[i]+1<<"\n";
}
}
Output
Enter number of vertices and edges respectively:7 6 Enter edge vertices of edge 1 :4 5 Enter edge vertices of edge 2 :2 3 Enter edge vertices of edge 3 :1 1 Enter edge vertices of edge 4 :1 4 Enter edge vertices of edge 5 :6 7 Enter edge vertices of edge 6 :2 2 Vertex 1 is coloured with 1 Vertex 2 is coloured with 1 Vertex 3 is coloured with 2 Vertex 4 is coloured with 2 Vertex 5 is coloured with 1 Vertex 6 is coloured with 1 Vertex 7 is coloured with 2
Advertisements