%%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

IT狂飙
- 粉丝: 4849
- 资源: 2649
最新资源
- 基于kinect 的人体动作识别新版算法源码+说明.zip
- 基于MATLAB的车牌识别系统新版算法源码+说明.zip
- 基于lumen5.5开发的高性能高并发图片识别平台API源码+说明.zip
- 混合动力汽车动态规划算法理论油耗计算及模块化编程教学:基于MATLAB的快速计算程序与参数自定义配置技术 ,混合动力汽车动态规划算法:基于MATLAB的油耗计算程序与模块化教学平台 通过控制量与状态量
- 基于LSTM的中文情绪识别新版源码+数据.zip
- 基于MLKit实现二维码+条形码识别(实现微信效果样式).zip
- 基于mtcnn_facenet_tensorflow 实现人脸识别登录系统新版源码+说明.zip
- 基于MFCC语音特征提取和识别新版算法源码+说明.zip
- 基于HTML+JavaScript的瑞吉外卖系统设计源码及优化实践
- 基于MTCNN和MobileFaceNet实现的人脸识别算法源码(提供三种预测方式,满足各种需求).zip
- 基于Java语言的优优租车系统设计源码
- 基于opencv的java车牌检测识别库(支持linux、windows、mac、Android平台).zip
- MATLAB仿真:TMM计算光学薄膜与一维光子晶体透射谱、反射谱,可定制多种膜层与入射条件,MATLAB仿真TMM法:定制计算光学薄膜与一维光子晶体透反谱随入射角及波型变化,MATLAB仿真传输矩阵法
- 基于ocr主流算法gru_lstm+ctc+cnn架构进行不定长度验证码识别,达到不分割字符而识别验证码内容的效果.zip
- 基于STM32、ESP8266与OneNet的智能家电控制系统设计源码
- 基于opencv的图像识别基础库.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


