Реализация поиска в ширину в tcl - PullRequest
2 голосов
/ 29 июня 2010

Я пытаюсь реализовать алгоритм поиска в ширину , но я не могу его реализовать, и я новый пользователь TCL. Может ли кто-нибудь помочь мне реализовать этот алгоритм в tcl.

Ответы [ 2 ]

3 голосов
/ 29 июня 2010

Я думаю, нам нужно немного подробнее, прежде чем мы сможем помочь.

Итак, мы говорим о графике, если да, то какого типа? Простейшим был бы неориентированный граф без весов ребер, но так ли это?

Есть ли у вас структура данных для графика, если да, то что это?

Наконец, почему ты изобретаешь колесо? Tcllib имеет пакет struct :: graph, который реализует поиск в ширину, см. Команду walk . Можете ли вы использовать это или алгоритмы в пакете struct :: graph :: op, чтобы делать то, что вы хотите.

0 голосов
/ 01 июля 2010

Если вы ищете файлы вместо общих объектов, найдите команду 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 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...