迪杰斯特拉算法(java实现)
在求单元最短路径时,首先会想到 Dijkstra算法 ,学习数据结构课程时第一次接触这个算法,忘了当初是否看懂书本上的伪代码,当然没有自己实现。最近无聊,想把以前欠老师的补一补,遂修此文,望读到此文的朋友多多指正。
问题描述
从点a到点b的带权图的最短路径的问题是一个基础的问题,如果解决了此问题,就可以用此方法解决类似许多问题,下边是经过思考一天写的代码:
import java.util.ArrayList;
import java.util.Scanner;
import java.util.PriorityQueue;
//图节点数为N;图边数为R;起始点为S;目标点为D;边表示为:a,b,c;a为起点,b为目标点,c为权重;
public class Dijistla {
static int[] visited;
static int Large = 881234567;
static ArrayList<int[]>[] lists;
static int answer;
@SuppressWarnings("unchecked")
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int N =