Exemplo n.º 1
0
        /// <summary> Создаёт пустой граф на заданном числе вершин </summary>
        /// <remarks> Вершины в новом графе имеют имена 1, 2, 3, и т. д. </remarks>
        public static DirectedWeightedGraph CreateEmpty(int verticesCount)
        {
            var newGraph = new DirectedWeightedGraph();

            for (var i = 0; i < verticesCount; ++i)
            {
                newGraph.AddVertex(new Vertex(i.ToString(CultureInfo.InvariantCulture)));
            }
            return(newGraph);
        }
Exemplo n.º 2
0
        /// <summary> Создаёт глубокую копию данного объекта </summary>
        public override object Clone()
        {
            var clone = new DirectedWeightedGraph();

            VerticesList.ForEach(v => clone.AddVertex(new Vertex(v.Name)));
            foreach (var edge in EdgesList)
            {
                var v1 = clone.Vertices.Single(v => v.Equals(edge.Vertex1));
                var v2 = clone.Vertices.First(v => v.Equals(edge.Vertex2));
                clone.AddEdge(new DirectedWeightedEdge(v1, v2, edge.Weight));
            }

            return(clone);
        }