图形着色是为图形的某些元素分配颜色的方法。最常用的方法是顶点着色方法。我们将获得 m 种颜色,我们会将每种颜色应用于顶点。我们在这里使用“回溯”算法。
插图:
Input: V = 4, C = 2
Graph:
Output: Solution exists
Colors: 1 2 1 2
方法:
- isPossible() 方法通过检查相邻顶点的颜色“v”是否具有我们想要分配给顶点的颜色“c”,来检查我们是否可以保持该特定顶点的颜色。
- Graphcoloring() 方法是我们在isPossible()函数的帮助下为顶点 v 尝试不同颜色的地方。
- 然后 main()函数只是初始化 color[] 数组,其用法与贪心算法相同,然后调用顶点 0 的 graphcoloring()函数。
- 当算法成功时,它打印解决方案,否则不存在解决方案。
执行:
例子
Java
Here V denotes colour and C denotes color
输出
{
{ 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
{ 1, 0, 1, 0, 0, 0, 1, 0, 0, 0 },
{ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0 },
{ 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 }
};
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。