示例#1
0
        private void calculeteEulerWay()
        {
            //рахуємо ціну шляху
            foreach (Edge e in _workGraph.Edges)
            {
                _weigth += e.Weight;
            }
            EulerCircle euler = new EulerCircle(
                _workGraph, _workGraph.Vertices.ToArray()[0]);
            Cycles cycles = euler.getEulerCycle();

            _cycleEdges  = cycles.edgesCycle;
            _cycleVertex = cycles.vertexCycle;
        }
示例#2
0
        private void startPosman()
        {
            //Перевіримо, чи граф має Ейлерів цикл
            EulerCircle   euler        = new EulerCircle(_graph, _graph.Vertices.ToArray()[0]);
            List <Vertex> noPartVertex = euler.getNoPartVertex();

            if (noPartVertex.Count == 0)
            {
                //граф містить ейлерів цикл
                _workGraph = _graph;
            }
            else
            {
                createWorkGraph(noPartVertex);
            }
            calculeteEulerWay();
        }