编写程序以检查图形是否为二分图

Joh*_*ton 6 algorithm graph bipartite

我需要编写一个程序来检查图表是否为二分图.

我已阅读维基百科关于图着色二分图的文章.这两篇文章提出了像BFS搜索一样测试二分性的方法,但是我不能编写实现这些方法的程序.

IVl*_*lad 12

你为什么不能?你的问题让人甚至很难为你编写程序,因为你甚至没有提到特定的语言......

我们的想法是首先将一个随机节点放入FIFO队列(也在这里).颜色为蓝色.然后在队列中仍有节点的情况下重复此操作:将元素出列.使用与提取的元素不同的颜色为其邻居着色,并将每个邻居插入(入队)到FIFO队列中.例如,如果您将一个红色的元素(节点)出列(提取),则将其邻居的颜色设置为蓝色.如果提取蓝色节点,则将其邻居的颜色设置为红色.如果没有着色冲突,则图表是二分的.如果你最终用两种不同的颜色着色节点,那么它不是二分的.

就像@Moron所说,我所描述的只适用于连接图.但是,您可以在每个连接的组件上应用相同的算法,以使其适用于任何图形.