Я пытаюсь реализовать алгоритм поиска в ширину, но не могу реализовать, и я новый пользователь TCL. Может ли кто-нибудь помочь мне реализовать этот алгоритм в tcl.
Реализация поиска в ширину в tcl
Ответы (2)
Я думаю, нам нужно немного больше деталей, прежде чем мы сможем помочь.
Итак, речь идет о графе, если да, то о каком? Простейшим был бы неориентированный граф без весов ребер, но так ли это?
Есть ли у вас структура данных для графика, если да, то какая?
Наконец, зачем вы изобретаете велосипед? В Tcllib есть пакет struct::graph, реализующий поиск в ширину, см. команду walk. Можете ли вы использовать этот или алгоритмы в пакете struct::graph::op, чтобы делать то, что вы хотите.
Если вы ищете файлы, а не общие объекты, найдите команду for_recursive_glob в пакете Tclx. Вот краткий пример:
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 }
}
perl
? - person Zaid   schedule 29.06.2010