Как я могу вспомнить, какие структуры данных используются DFS и BFS? - PullRequest
22 голосов
/ 14 октября 2010

Я всегда путаюсь, использую ли я стек или очередь для DFS или BFS.Может ли кто-нибудь представить какую-то интуицию о том, как запомнить, какой алгоритм использует какую структуру данных?

Ответы [ 13 ]

1 голос
/ 03 июля 2017
  1. Stack (последний пришел первым вышел, LIFO).Для DFS мы извлекаем его из корня в самый дальний узел, насколько это возможно, это та же идея, что и LIFO.

  2. Очередь (First In First Out, FIFO).Для BFS мы извлекаем его один уровень на один уровень, после посещения верхнего уровня узла, посещения нижнего уровня узла, это та же идея, что и FIFO.

0 голосов
/ 28 июля 2018

Вы можете вспомнить, сделав аббревиатуру

BQDS

Прекрасная королева совершила грехи.

На хинди, हुरानी क्यु र्द हा

0 голосов
/ 30 апреля 2017

Я хотел бы поделиться этим ответом: https://stackoverflow.com/a/20429574/3221630

Принимая BFS и заменяя очередь на стек, воспроизводится тот же порядок посещения DFS, он использует больше места, чем фактический алгоритм DFS.

...