%%Dijkstra算法
%%vi为结点,ei为边,L为路径长度
function Dijkstra
%%输入信息
n=input('请输入结点的个数n=');
m=input('请输入边的条数m=');
for k=1:m
bian(k).qianqu=input('边的前驱','s');
bian(k).houji=input('边的后继','s');
bian(k).value=input('边的权重');
end
for k=1:n
dian(k).name=strcat('v',num2str(k));
dian(k).biaohao='t';
end
%%初始化
dian(1).L=0;
dian(1).qianqu=0;
dian(1).biaohao='p';
for k=1:m
if bian(k).qianqu=='v1'
dian(str2num(bian(k).houji(2))).L=bian(k).value;
dian(str2num(bian(k).houji(2))).qianqu=dian(1).name;
end
if bian(k).houji=='v1'
dian(str2num(bian(k).qianqu(2))).L=bian(k).value;
dian(str2num(bian(k).qianqu(2))).qianqu=dian(1).name;
end
end
for k=1:n
if isempty(dian(k).L)
dian(k).L=inf;
end
end
%%求解最短途径
log=n-1;min=inf;
while log
for k=2:n
if dian(k).biaohao=='t'
if min>dian(k).L
mins=k;
min=dian(k).L;
end
end
end
dian(mins).biaohao='p';
for k=1:m
if bian(k).qianqu==strcat('v',num2str(mins))&dian(str2num(bian(k).houji(2))).biaohao~='p'
if dian(str2num(bian(k).houji(2))).L>(dian(str2num(bian(k).qianqu(2))).L+bian(k).value)
dian(str2num(bian(k).houji(2))).L=dian(str2num(bian(k).qianqu(2))).L+bian(k).value;
dian(str2num(bian(k).houji(2))).qianqu=dian(mins).name;
end
end
if bian(k).houji==strcat('v',num2str(mins))&dian(str2num(bian(k).qianqu(2))).biaohao~='p'
if dian(str2num(bian(k).qianqu(2))).L>(dian(str2num(bian(k).houji(2))).L+bian(k).value)
dian(str2num(bian(k).qianqu(2))).L=dian(str2num(bian(k).houji(2))).L+bian(k).value;
dian(str2num(bian(k).qianqu(2))).qianqu=dian(mins).name;
end
end
end
min=inf;log=log-1;
end
dian(n).L
dian(n).name
p=dian(str2num(dian(n).qianqu(2)));
for k=1:(n-2)
p.name
p=dian(str2num(p.qianqu(2)));
end
p.name
阿里matlab建模师
- 粉丝: 4311
- 资源: 2846
最新资源
- ASME核电建造规范对焊接热影响区韧性降低的补偿要求.pdf
- 机械设计南方航空抛光机 sw14可编辑非常好的设计图纸100%好用.zip
- 数据分析-18-Video Game Sales电子游戏销售分析(包含数据代码)
- delphi 7 解决Indy获取网页内容,UTF8编码乱码问题
- 机械设计卧式离心鼓风机igs非常好的设计图纸100%好用.zip
- 机械设计运输机器人3D模型stp非常好的设计图纸100%好用.zip
- A-TIG焊在碳钢焊接中的应用.pdf
- AWS A5.16A5.16M-2007 钛及钛合金焊接电极和焊条规范.pdf
- 机械设计室外型不锈钢垃圾箱sw14可编辑非常好的设计图纸100%好用.zip
- AWS B2.1-1-003-2002 在焊接条件下、有或没有垫板、10到18规格的镀锌钢的气体保护金属极电弧焊.pdf
- AWS B1.11-2000 中文版 焊接目视检查工作手册.pdf
- AWS B2.1-1-004-2002 在焊接条件下、有或没有垫板、10到18规格的碳钢(M1,组1)的气体保护金属极电弧焊.pdf
- AWS B2.1-1-012-2002 标准焊接程序规范.在焊接条件下、有或没有垫板、10到18规格的碳钢(M1,组1)的保护金属焊条电弧焊.pdf
- AWS B2.1-1-201-96(R2007) 主要用于管道的、在焊接条件下、(M-1/P-1/S-1,1或2组)1/8到3/4英寸厚、E6010(垂直向上)及E7018(垂直向上)碳.pdf
- AWS B2.1-1-202-96(R2007) 主要用于管道的、在焊接条件下、(M-1/P-1/S-1,1或2组)1/8到3/4英寸厚、E6010(垂直向上)及E7018(垂直向上)碳钢.pdf
- AWS B2.1-1-206-96(R2007) 主要用于管道的、在焊接或PWHT条件下(M-1/P-1/S-1,1或2组)1/8到1-1/2英寸厚、E6010(垂直向上)及E7018(垂直.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈