У меня есть большая файловая система, которую мне нужно пройти для ошибок. Каждый файл знает, содержит ли он ошибку, поэтому мне просто нужно перейти на каждый узел и проверить, есть ли там ошибка. Кроме того, каждому каталогу известно общее количество ошибок, которые существуют внутри, поэтому поиск можно прервать, как только будет найдено заданное количество ошибок, и каталог не нужно пересматривать, если он не содержит ошибок.
Мой вопрос заключается в том, лучше ли было бы использовать поиск в глубину или поиск в ширину. Высота дерева не определена, что, как я знаю, обычно делает BFS лучше, но, учитывая, что мы знаем, будет ли каталог содержать ошибку перед ее обходом, я не уверен, что это преимущество уменьшено.
ПРИМЕЧАНИЕ. Это НЕ домашнее задание. Это требование к сценарию, которое мой начальник попросил написать.
РЕДАКТИРОВАТЬ 1: Эффективность времени гораздо важнее, чем экономия пространства, поскольку сценарий будет в основном выполняться в течение ночи и, следовательно, может по существу использовать всю системную память, если это необходимо.
РЕДАКТИРОВАТЬ 2: Хотя кажется, что популярный ответ BFS для моей проблемы, у меня проблемы с пониманием, почему это не будет проблемой DFS. Так как (A) все ошибки должны быть в конечном итоге достигнуты и (B) мы знаем, содержит ли каталог ошибки, защита BFS от кроличьих дыр в действительности не применяется. Имея это в виду, единственное реальное различие, по-видимому, заключается в используемом пространстве, что улучшило бы DFS. Кто-нибудь может дать хороший аргумент относительно того, почему это не так?