К примеру, предположим, что есть граф G = (V, E), гдеКак разделять двудольный граф по цвету?
В = {А, В, С, D}
Е = {(А, В), (А, D), (C, D)}
Этот граф двудольный и поэтому может быть разбит на два непересекающихся множества {A, C} и {B, D}. Мое первое предположение состоит в том, что я могу просто ходить по графу и назначать переменные цвета для каждой вершины. Это так, или это сложнее/проще, чем это? Существуют ли для этого известные алгоритмы?
Или просто написать рекурсивный DFS, передавая цветовой аргумент. –
Большинство графиков, достаточно больших, чтобы быть интересными, вызывают SO на рекурсивной DFS. –
Это просто BFS. Нет необходимости держать две очереди; достаточно одного (поскольку вы отмечаете цвета узлов, когда идете). – ShreevatsaR