...

/

Solution: Color the Graph

Solution: Color the Graph

This review provides a detailed analysis of the solution to the graph coloring problem.

We'll cover the following...

Solution

Press + to interact
main.java
Graph.java
class Coloring {
public static void greedyColoring(Graph g) {
int numofVertices = g.getVertices();
int[] result = new int[numofVertices];
//Initialize vertices as unassigned
Arrays.fill(result, -1);
//Assign the first color to first vertex
result[0] = 0;
boolean[] available = new boolean[numofVertices];
// Assign colors to remaining V-1 vertices
Arrays.fill(available, true);
LinkedList < Integer > Llist[];
Llist = g.getAdj();
for (int i = 1; i < numofVertices; i++) {
Iterator < Integer > var = Llist[i].iterator();
while (var.hasNext()) {
int temp = var.next();
// Find the first available color
if (result[temp] != -1) {
available[result[temp]] = false;
}
}
int j;
for (j = 0; j < numofVertices; j++) {
if (available[j]) {
break;
}
}
result[i] = j; // Assign the found color
//reset the values
Arrays.fill(available, true);
}
for (int i = 0; i < numofVertices; i++) {
System.out.println("Vertex: " + i + " , " + "Color: " + result[i]);
}
}
}
class Main {
public static void main(String[] args) {
Graph g1 = new Graph(5);
g1.addEdge(0, 1);
g1.addEdge(0, 2);
g1.addEdge(1, 2);
g1.addEdge(1, 3);
g1.addEdge(2, 3);
g1.addEdge(3, 4);
Coloring.greedyColoring(g1);
System.out.println();
Graph g2 = new Graph(5);
g2.addEdge(0, 1);
g2.addEdge(0, 2);
g2.addEdge(1, 2);
g2.addEdge(1, 4);
g2.addEdge(2, 4);
g2.addEdge(4, 3);
Coloring.greedyColoring(g2);
}
}

Explanation

The solution is simple: ...

Access this course and 1400+ top-rated courses and projects.