我正在尝试实施广度优先搜索算法,但我无法实现,而且我是TCL的新用户,任何人都可以帮助我在tcl中实现此算法。
答案 0 :(得分:3)
我认为在我们提供帮助之前,我们需要更多细节。
那么,我们是在谈论图表,如果是这样的话是什么类型的?最简单的是没有边缘权重的无向图,但是这种情况呢?
你是否有图表的数据结构,如果有的话是什么?
最后你为什么要重新发明轮子? Tcllib有struct :: graph包,它实现了广度优先搜索,参见 walk 命令。你可以在struct :: graph :: op包中使用这个或算法来做你想要的。
答案 1 :(得分:0)
如果要搜索文件而不是通用对象,请在Tclx包中查找命令for_recursive_glob。这是一个简单的例子:
package require Tclx
for_recursive_glob fileName {/path/to/dir1 /to/dir2} {*.txt *.doc} { puts $fileName }
该文件称for_recursive_glob使用广度优先算法。如果你想提前退出(即找到你想要的东西),使用'break'命令退出for循环:
package require Tclx
for_recursive_glob fileName {/path/to/dir1 /to/dir2} {*.txt *.doc} {
puts $fileName
if {[string match *myfile*]} { break }
}