Java 实现:3 种颜色给 4 顶点图着色,连边顶点颜色不同!
以下是用 Java 实现的给 4 顶点图着色的代码示例: ```java import java.util.Arrays; public class GraphColoring { // 检查当前颜色分配是否有效 public static boolean isSafe(int[][] graph, int[] color, int vertex, int c) { for (int i = 0; i < graph.length; i++) { if (graph[vertex][i] == 1 && color[i] == c) { return false; } } return true; } // 进行图着色的递归函数 public static boolean graphColoringUtil(int[][] graph, int m, int[] color, int vertex) { if (vertex == graph.length) { return true; } for (int c = 1; c <= m; c++) { if (isSafe(graph, color, vertex, c)) { color[vertex] = c; if (graphColoringUtil(graph, m, color, vertex + 1)) { return true; } color[vertex] = 0; } } return false; } // 主函数 public static boolean graphColoring(int[][] graph, int m) { int[] color = new int[graph.length]; Arrays.fill(color, 0); if (!graphColoringUtil(graph, m, color, 0)) { System.out.println("无法完成着色"); return false; } // 打印着色结果 for (int i = 0; i < graph.length; i++) { System.out.println("顶点 " + i + " 的颜色: " + color[i]); } return true; } public static void main(String[] args) { int[][] graph = {{0, 1, 1, 1}, {1, 0, 1, 0}, {1, 1, 0, 1}, {1, 0, 1, 0}}; int m = 3; // 颜色数量 graphColoring(graph, m); } } ``` 额外需要注意的逻辑点: 1. 对于颜色分配的有效性判断要准确,确保连边顶点颜色不同。 2. 递归过程中回溯的处理要恰当,以便尝试所有可能的着色组合。 3. 处理好无法完成着色的情况,给出明确的提示信息。 ######[AI写代码神器 | 572点数解答 | 2024-11-28 09:30:28]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)438
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)337
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1232
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)382
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)75
- 深入探究:n 位格雷码中编号 k 二进制串的求解算法与实现(DeepSeek | 726点数解答 | 2026-01-13 12:31:37)75
- Java 实现交通工具类继承:从 Vehicles 到 Car 的完整示例(字节豆包 | 289点数解答 | 2024-09-18 16:16:54)254
- Java实战:交通工具与小汽车类定义及测试全解析(字节豆包 | 290点数解答 | 2024-09-18 21:39:01)348
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)352
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)347
- C++ 实战:交通工具基类与小汽车类的继承实现及测试(字节豆包 | 391点数解答 | 2024-09-18 16:16:39)279
- Java 继承实战:交通工具与小汽车类的定义与测试(字节豆包 | 293点数解答 | 2024-09-18 21:36:23)382