Слияние кода завершено, страница обновится автоматически
Реализация алгоритма Дейкстры для нахождения кратчайшего пути на основе Java. Пример программы см. в: example/mx/RunDome.java
public void demo1() {
// Объявление вершин
Point A = new MyPoint(1,0,0);
Point B = new MyPoint(2,0,0);
Point C = new MyPoint(3,0,0);
Point D = new MyPoint(4,0,0);
Point E = new MyPoint(5,0,0);
// Добавление вершин в коллекцию
ArrayList<Point> source = new ArrayList<Point>();
source.add(A);
source.add(B);
source.add(C);
source.add(D);
source.add(E);
// Объявление рёбер
ArrayList<Edge> edges = new ArrayList<Edge>();
edges.add(new Edge(A, B, 10));
edges.add(new Edge(A, C, 5));
edges.add(new Edge(B, C, 2));
edges.add(new Edge(B, D, 1));
edges.add(new Edge(C, B, 3));
edges.add(new Edge(C, D, 9));
edges.add(new Edge(C, E, 2));
edges.add(new Edge(D, E, 4));
edges.add(new Edge(E, D, 6));
edges.add(new Edge(E, A, 7));
Dijkstra d = new Dijkstra();
Stack<Point> points = d.dijkstra(source, edges, A, D); // Предоставление коллекции вершин, коллекции рёбер, начальной и конечной вершины для поиска пути
while (points.size() > 0) {
Point p = points.pop();
System.out.print(((MyPoint)p).getId()+">"); // Вывод результата: 1>3>2>4
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )