资源简介

用matlab编写的源代码,附有一定的注释,并且能够输出所有源点到终点的最短路径。

资源截图

代码片段和文件信息

clc
clear
load Distance.txt
D=Distance;
D(find(D==0))=inf;%为了处理方便,将每个顶点到自身的路径长度设为inf
N=length(D)+6;%因为是为了找出所有的路径所以路径矩阵多加了几个,可以改
R=zeros(NN);
s0=input(‘输入起点‘);
k1=input(‘如果想求到指定点的最短路径长度输入0,否则输入1‘);
if k1==0
e0=input(‘输入终点‘);
else
    e0=0;
end
S=s0;
V=[1:length(D)];
n=find(V==s0);
V(:n)=[];
g=1;
m=find(min(D(s0:))==D(s0:));%m表示开始时有几个最小值
S=[S m];
for k=1:length(m)
    R(k1)=min(D(s0:));
    R(k2:3)=[s0 m(k)];
    temp=[R(k1:3) s0 m(k)];
    R(k:)=[temp zeros(1N-length(temp))];
    V(:find(V==m(k)))=[];
    g=g+1;
end
%第一次判断结束
while ~isempty(V)
    m=length(S)-1;
    n=length(V);
    a=zeros(mn);
    b=zeros(1n);
    c=zeros(1n);
    t=1;
    while t<=m
        a(t:)=D(S(1)S(t+1))+D(S(t+1)V);
        t=t+1;
    end
    b=D(s0V);
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3614  2009-09-09 17:19  Dijkstra\Dijkstra.m

     文件        142  2009-09-08 21:05  Dijkstra\Distance.txt

     目录          0  2009-09-09 17:20  Dijkstra

----------- ---------  ---------- -----  ----

                 3756                    3


评论

共有 条评论