3. What is the output of this C# code snippet checking bipartite for a graph with edges: 0-1, 1-2, 2-3, 3-0?
var graph = new Dictionary {
{0, new List<int>{1,3}},
{1, new List<int>{0,2}},
{2, new List<int>{1,3}},
{3, new List<int>{2,0}}
};
bool IsBipartite(Dictionary g) {
var color = new Dictionary();
foreach(var node in g.Keys) {
if(!color.ContainsKey(node)) {
var queue = new Queue<int>();
queue.Enqueue(node);
color[node] = 0;
while(queue.Count > 0) {
var u = queue.Dequeue();
foreach(var v in g[u]) {
if(!color.ContainsKey(v)) {
color[v] = 1 - color[u];
queue.Enqueue(v);
} else if(color[v] == color[u]) {
return false;
}
}
}
}
}
return true;
}
Console.WriteLine(IsBipartite(graph));