ベルマンフォード法
LET n=7
DIM dist(n), node
MAT READ node$
DATA A,B,C,D,E,F,G
MAT path
DIM c(n,n)
MAT c=1000*CON
MAT dist=1000*CON
LET dist(1)=0
LET c(1,1)=0
LET c(2,2)=0
LET c(3,3)=0
LET c(4,4)=0
LET c(5,5)=0
LET c(6,6)=0
LET c(7,7)=0
LET c(1,2)=30
LET c(2,1)=30
LET c(1,3)=20
LET c(3,1)=20
LET c(1,7)=1000
LET c(7,1)=1000
LET c(2,3)=2
LET c(3,2)=2
LET c(1,4)=1000
LET c(4,1)=1000
LET c(2,5)=1000
LET c(5,2)=1000
LET c(2,4)=60
LET c(4,2)=60
LET c(3,4)=50
LET c(4,3)=50
LET c(3,5)=20
LET c(5,3)=20
LET c(4,5)=20
LET c(5,4)=20
LET c(3,6)=1
LET c(6,3)=1
LET c(4,6)=30
LET c(6,4)=30
LET c(4,7)=1000
LET c(7,4)=1000
LET c(5,7)=50
LET c(7,5)=50
LET c(6,5)=5
LET c(5,6)=5
LET c(6,7)=10
LET c(7,6)=10
REM-----------------------------------------------------------------
FOR t=1 TO n-1
FOR i=1 TO n
IF dist(i)>dist(t)+c(t,i) THEN
LET dist(i)=dist(t)+c(t,i)
LET path
END IF
NEXT i
NEXT t
FOR t=1 TO n-1
FOR i=n TO 1 STEP -1
IF dist(i)>dist(t)+c(t,i) THEN
LET dist(i)=dist(t)+c(t,i)
LET path
END IF
NEXT i
NEXT t
REM ------------------------------
FOR x=1 TO n
PRINT "最短距離="; dist(x); ", 経路=";path$(x)
NEXT x
END