这样的查询语句怎么写?快帮忙!!(200分)

  • 主题发起人 主题发起人 wishme5
  • 开始时间 开始时间
W

wishme5

Unregistered / Unconfirmed
GUEST, unregistred user!
表结构如下:
起点 终点 距离
A E 100
A B 20
A C 30
B E 50
C E 60
以A为起点到E有三条路:
A直接到E为100公里
从A到B为20公里,再从B到E为50公里,共70公里
从A到C为30公里,再从C到E为60公里,共90公里
根据算法选择A为起点到E最短路程,步骤如下:
(1)、我先选出以A为起点的路,得到
起点 终点 距离
A E 100
A B 20
A C 30
取出最小的一条:
起点 终点 距离
A B 20
其它两条记录要参与下次比较
(2)、再以上面的终点B为起点查找,找到一条记录
起点 终点 距离
B E 50
加上前面两条记录,共三条
A E 100
A C 30
B E 50
再取出最小的一条
A C 30
其它两条记录要参与下次比较
(3)、再以上面的终点C为起点,找到一条记录
起点 终点 距离
C E 60
加上前面上面的另外两条记录,共三条
A E 100
B E 50
C E 60
再取最小一条:
B E 50
这时,终点为E,表示查找完成
结果为 A-B-E,为20+50=70

要的结果就是:路线:A-B-E,距离:70
怎样把它写成程序?如果点多的话,怎样合理的循环实现该功能?
 
你可以参考 单源最短路径 Dijkstra 算法 或 单源最短路径 Bellman-Ford 算法
很多数据结构书上有
 
code 浓于水, 我没分了。
help you up
 
你可以参考 单源最短路径 Dijkstra 算法 或 单源最短路径 Bellman-Ford 算法
也很好写的
 
后退
顶部