首页 > 代码库 > 贴 SPFA 代码 -- Fortran 实现
贴 SPFA 代码 -- Fortran 实现
不大专业,而且也没测试,欢迎挑错。
话说博客园怎么没有 Fortran 代码加亮……
PROGRAMSPFA INTEGERWEI(100,100) INTEGERWAY(100) INTEGERQUEUE(100) LOGICALVISIT(100) READ*,NVERT,NEDGE,MFROM,MTO DOI=1,NEDGE READ*,LPOSX,LPOSY,LWEI WEI(LPOSX,LPOSY)=LWEI WEI(LPOSY,LPOSX)=LWEI ENDDO DOI=1,NEDGE WAY(I)=HUGE(I) VISIT(I)=.FALSE. ENDDO QUEUE(1)=MFROM VISIT(MFROM)=.TRUE. WAY(MFROM)=0 JQH=1 JQT=2 DO IF(JQH.EQ.JQT)GOTO7 ICURR=QUEUE(JQH) JQH=JQH+1 IF(JQH.EQ.101)JQH=1 VISIT(ICURR)=.FALSE. DOI=1,NVERT IF(WEI(ICURR,I).GT.0.AND. $ WEI(ICURR,I)+WAY(ICURR).LT.WAY(I))THEN WAY(I)=WAY(ICURR)+WEI(ICURR,I) IF(.NOT.VISIT(I))THEN VISIT(I)=.TRUE. QUEUE(JQT)=I JQT=JQT+1 IF(JQT.EQ.101)JQT=1 ENDIF ENDIF ENDDO ENDDO 7 PRINT*,WAY(MTO) END
贴 SPFA 代码 -- Fortran 实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。