예제 #1
0
파일: AlgDjekstr.cs 프로젝트: 121max1/Graph
        public AlgDjekstr(GraphVisual.Graph g)
        {
            _distances = new SortedDictionary <VertexView, int>();


            foreach (var edge in g.E)
            {
                Edges.Add(new EdgeDjekstra(edge.V1, edge.V2, edge.Distance));
            }
            foreach (var vertex in g.V)
            {
                Vertices.Add(new VertexDjekstra(vertex));
            }
        }
예제 #2
0
파일: AlgDjekstr.cs 프로젝트: 121max1/Graph
        public async static Task <SortedDictionary <VertexView, int> > AlgDjekstra(int startVert, GraphVisual.Graph g, Canvas graphCanvas, bool isLearingMode)
        {
            VertexView startVertex = g.V.Where(item => item.Number == startVert).First();

            ;            _distances = new SortedDictionary <VertexView, int>();
            Edges    = new List <EdgeDjekstra>();
            Vertices = new List <VertexDjekstra>();
            grCanvas = graphCanvas;
            foreach (var edge in g.E)
            {
                Edges.Add(new EdgeDjekstra(edge.V1, edge.V2, edge.Distance));
            }
            foreach (var vertex in g.V)
            {
                Vertices.Add(new VertexDjekstra(vertex));
            }
            VertexDjekstra firstVertex = Vertices.Where(item => item.Number == startVertex.Number).First();

            firstVertex.CurrentMark = 0;
            await FindMinWays(firstVertex, isLearingMode);

            return(_distances);
        }