Я всегда путаюсь, использую ли я стек или очередь для DFS или BFS.Может ли кто-нибудь представить какую-то интуицию о том, как запомнить, какой алгоритм использует какую структуру данных?
Stack (последний пришел первым вышел, LIFO).Для DFS мы извлекаем его из корня в самый дальний узел, насколько это возможно, это та же идея, что и LIFO.
Очередь (First In First Out, FIFO).Для BFS мы извлекаем его один уровень на один уровень, после посещения верхнего уровня узла, посещения нижнего уровня узла, это та же идея, что и FIFO.
Вы можете вспомнить, сделав аббревиатуру
BQDS
Прекрасная королева совершила грехи.
На хинди, ब हुरानी क्यु द र्द स हा
Я хотел бы поделиться этим ответом: https://stackoverflow.com/a/20429574/3221630
Принимая BFS и заменяя очередь на стек, воспроизводится тот же порядок посещения DFS, он использует больше места, чем фактический алгоритм DFS.