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;
                    }
                }
            }
        }