public void AddEdge(Edge edge) { if(_edges.All(e => e.Id != edge.Id)) _edges.Add(edge); if (edge.Left.Id != Id) _nodes.Add(edge.Left); else if (edge.Right.Id != Id) _nodes.Add(edge.Right); }
public void Execute(Node[] nodes, Edge[] edges) { var colors = Enumerable.Range(0, nodes.Length).ToArray(); var sortedNodes = nodes.OrderByDescending(n => n.EdgeCount).ToArray(); foreach (var node in sortedNodes) { foreach (var color in colors) { if (node.CanAssignColor(color)) { node.ColorId = color; break; } } } }