我有一个顶点着色问题,我直观地理解但是难以进入伪代码形式(为了更好地理解它),然后才能实现它。
这是我对伪代码的进展以及到目前为止我已经解决的问题:
<小时/> 输入:列出 n 顶点,这些顶点由 m 边缘随机连接。
算法: 目标是将颜色红色或蓝色分配给顶点,以便两个相邻的顶点(由边连接)不共享相同的颜色。
输出:
-True(如果可能用2种颜色解决) 或
-False(如果不能用2种颜色解决)
<小时/> 现在,直观地你可以很容易地看到,除非3个顶点彼此相邻,否则这将始终有效。 例如,以下示例将不起作用,因为A具有包含B和C的边:
| --------- |
A - B - C
但下面的例子可行,因为我们可以给A和C颜色为红色,B给蓝色:
A - B - C
我的问题是我一直试图弄清楚如何将这个带有顶点和边缘的2个着色问题转换成传统的列表表示(使用伪代码),然后用广度优先搜索或深度优先搜索来解决它算法
欢迎并欢迎所有反馈和建议!谢谢!
编辑:不一样,因为我正在寻找这个问题的列表表示的伪代码。如何在列表中存储某个顶点具有哪些邻居的信息?