恳请VB高手帮我调个程序,关于Dijkstra算法的

来源:百度知道 编辑:UC知道 时间:2024/05/30 11:30:55
恳请VB高手帮我调个程序
以下程序是用Dijkstra方法求单源最短路径。窗体上有两个Command Button,单击ok输入结点个数,单击计算打印最短长度及路径
调了好久实在调不出来,如果有人能调试成功,请一定留下联系方式,本人一定重谢!我的QQ:603869689

Dim m As Integer 'size存储图的实际结点个数
Dim w As Single '以w接收权值
Dim Edge() As Single 'edge数组存储邻接矩阵
Dim D() As Single '数组D存储每一步计算后入选的路径长度
Dim str1 As String
Dim P() As Integer '数组P存储每一步计算后入选的结点
Private Sub ok_Click()
Dim i%, j%, n%
n = 0
m = InputBox("输入图的结点个数")
ReDim Edge(1 To m, 1 To m)
For i = 1 To m
For j = 1 To m
Edge(i, j) = InputBox("输入各结点权值")
Next
Next
End Sub
Sub Dijkstra(s As Integer) 'dijkstra算法
Dim i, j, k, start As Integer
Dim min As Single
ReDim Preserve D(1 To m)
For l = 1 To m
Dim Visited() As Boolean 'visited数组区分每一步计算中入选和候选的结点,visited[i]=True表示已入选,为False表示候选
ReDim Preserve P(1 To l)
D(l) = Edge(s, l)
If D(l) <> 10

首先你的输入程序就有问题,节点自生的权值应该为0或者无穷大,不应该输入自定义值的

这里有个现成的VB迪杰斯特拉程序,你下了看看,和你的算法大体上是一样的,都不用调试了

http://www.600it.com/soft/261/268/2006/200602039311.htm

楼主想做什么 你说出来 直接给你源代码~
这个不想看了