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