Java语言实现最短路径算法(Shortest Path)在Java中实现最短路径算法,可以选择经典的Dijkstra算法。Dijkstra算法是一种用于计算加权图中单源最短路径的贪心算法。下面是一个简单的Dijkstra算法实现示例:
import java.util.*;
public class Dijkstra {
static class Edge {
int target;
int weight;
Edge(int target, int weight) {
this.target = target;
this.weight = weight;
}
}
static class Graph {
int vertices;
LinkedList<Edge>[] adjacencyList;
Graph(int vertices) {
this.vertices = vertices;
adjacencyList = new LinkedList[vertices];
for (int i = 0; i < vertices; i++) {
adjacencyList[i] = new LinkedList<>();
}
}
void addEdge(int source, int target, int weight) {
adjacencyList[source].add(new Edge(target, weight));
adjacencyList[target].add(new Edge(source, weight)); // 如果是有向图,则去掉这一行
}
void dijkstra(int startVertex) {