VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 774|回复: 3

大家看看我这段程序那出错了,溢出堆栈空间。

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-29 01:40:02 | 显示全部楼层 |阅读模式
Dim visited(1 To 6) As Boolean
Dim u, v As Integer
Dim i As Integer, k As Integer
g(1, 1) = 0:  g(1, 2) = 1:  g(1, 3) = 1:  g(1, 4) = 0:  g(1, 5) = 0:  g(1, 6) = 0:
g(2, 1) = 1:  g(2, 2) = 0:  g(2, 3) = 0:  g(2, 4) = 1:  g(2, 5) = 1:  g(2, 6) = 0:
g(3, 1) = 1:  g(3, 2) = 0:  g(3, 3) = 0:  g(3, 4) = 0:  g(3, 5) = 0:  g(3, 6) = 1:
g(4, 1) = 0:  g(4, 2) = 1:  g(4, 3) = 0:  g(4, 4) = 0:  g(4, 5) = 0:  g(4, 6) = 0:
g(5, 1) = 0:  g(5, 2) = 1:  g(5, 3) = 0:  g(5, 4) = 0:  g(5, 5) = 0:  g(5, 6) = 0:
g(6, 1) = 0:  g(6, 2) = 0:  g(6, 3) = 1:  g(6, 4) = 0:  g(6, 5) = 0:  g(6, 6) = 0:
For i = 1 To 6
visited(i) = False
Next i
Call dfs(1, g)
For i = 1 To 6
Print visited(i); "  ";
Next i
Print
End Sub
Sub dfs(u, g)
Dim visited(1 To 6) As Boolean
visited(u) = True
For k = 1 To 6
  If g(u, k) = 1 Then
  v = k
    If visited(v) = faulse Then
    Call dfs(v, g)
    End If
  End If
Next k
End Sub
回复

使用道具 举报

0

主题

46

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-3-4 22:00:02 | 显示全部楼层
应该是死循环了。
  

回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-17 21:00:01 | 显示全部楼层
要么将 visited 定义未模块变量,要么通过参数传递,否则无意义。
还有打开 Option Explicit 选项,应该有编译错误。
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-3-27 00:45:02 | 显示全部楼层
If visited(v) = faulse Then  'visited 没有定义为模块变量,faulse应为false
Call dfs(v, g)   
End If
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表