Advertisement
Guest User

DIjkstraaaaa

a guest
May 20th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. // Start node op 0 zetten
  2. startingNode.Distance = 0;
  3.  
  4. // Alle nodes op oneindig zetten
  5. for (int i = 0; i < graph.Nodes.Count; i++)
  6. graph.Nodes[i].Distance = int.MaxValue;
  7.  
  8. // Alle nodes nog niet gevisit
  9. for(int i = 0; i < graph.Nodes.Count; i++)
  10. graph.Nodes[i].ShortestPathKnown = false;
  11.  
  12.  
  13. while (true)
  14. {
  15. // De node met laagste afstandswaarde ophalen
  16. Node u = graph.Nodes.Where(n => !n.ShortestPathKnown).OrderBy(n => n.Distance).FirstOrDefault();
  17.  
  18. // Uit de while loop als er geen nodes meer zijn
  19. if (u == null)
  20. break;
  21.  
  22. u.ShortestPathKnown = true;
  23. // update interface
  24. DisplayGraph(startingNode);
  25.  
  26. // Kijken of de de lijn hoort bij de node
  27. List<Edge> neigbhours = graph.Edges.Where(e => e.A == u).ToList();
  28.  
  29.  
  30. foreach (Edge neighbour in neigbhours)
  31. {
  32. Node n;
  33. // N is altijd b want je bent al bij de A kant
  34. n = neighbour.B;
  35.  
  36. if (!n.ShortestPathKnown)
  37. {
  38. int distance = u.Distance + neighbour.Weight;
  39. if (distance < n.Distance)
  40. n.Distance = distance;
  41. }
  42. }
  43.  
  44. // update interface
  45. DisplayGraph(startingNode);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement