Я пытался понять двудольный граф. Насколько я понимаю, это граф G, который можно разделить на два подграфа U и V. Так что пересечение U и V является нулевым множеством, а объединение - графом G. Я пытаюсь найти, если граф двудольный или не используется BFS. Тем не менее мне непонятно, как мы можем найти это с помощью BFS.Как найти, является ли граф двудольным?
Скажем, у нас есть график, определенный ниже.
a:e,f
b:e
c:e,f,h
d:g,h
e:a,b,c
f:a,c,g
g:f,d
h:c,d
Что мне нужно здесь шаг за шагом объяснение того, как этот граф является двудольным или не использовать BFS.
Что вы подразумеваете под пересечением двух подграфов? Насколько я знаю, двудольный граф - это граф, вершины которого можно разбить на два множества со всеми ребрами, начинающимися в одном множестве и заканчивающимися на другом. – biziclop
Что касается BFS, вы можете начать с одной вершины, окрасить ее в синий цвет, затем окрасить всех своих соседей в красный цвет, затем пройти через соседей соседей и снова окрасить их в синий цвет и так далее. Если вы столкнулись с уже окрашенным узлом, и он отличается от того, который вам нужно установить, график не является двудольным. – biziclop
@ biziclop Я имел в виду то же самое. два набора являются двумя подграфами, а пересечение - множеством NULL, которое поддерживает двудольное, что вершина не может быть в двух наборах одновременно. Если это тогда, то это не двудольный граф. – user2738777