例如,假设我有一个图 G = (V, E),其中
V = {A,B,C,D}
E = {(A,B),(A,D),(C,D)}
该图是二分图,因此可以分为两个不相交的集合{A,C}和{B,D}。我的第一个猜测是,我可以简单地遍历图形并为每个顶点指定交替的颜色。是这样吗,还是比这更复杂/更简单?是否有任何已知的算法?
您的第一个猜测是正确的 - 遍历图表并交替。
该算法应该很简单。我会保留两个要访问的节点队列,每个颜色一个。交替地将节点从队列中弹出,标记其颜色,并将任何未访问的相邻节点推入相反颜色的队列中。当访问的节点数 + 两个队列的长度 = 图中的节点数时终止。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)