Обход ориентированного графа в глубинуJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Обход ориентированного графа в глубину

Сообщение Anonymous »

У меня есть задание: мне нужно написать метод, выполняющий ДПФ ориентированного графа. Вот направленные ребра:
  • Узел 1 --> Узел 2, Узел 3
  • Узел 2 -->Узел 4
  • Узел 3 -->Узел 5
  • Узел 4-->Узел 5
Насколько я понимаю, после просмотра этого видео выполнение ДПФ приведенного выше графика, начиная с узла 1, выдаст 1, 2, 4, 5, 3. Мой Причина этого в том, что, глядя на ребра 1, 2 естественным образом предшествует 3, а затем линейно прогрессирует, пока не достигнет 5. Поскольку у 5 нет других ребер, кроме соединения с 4, обход «развернется» обратно к узлу 1, после чего выведет узел 3.

Однако назначение ожидает вывода 1, 3, 5, 4, 2 Где проблема в моей логике?

РЕДАКТИРОВАТЬ: я не уверен, какую часть назначения я неправильно понял, но решение заключалось в том, что после печати первого элемента перемещение узла добавляет его в стек, но ожидаемый результат — это порядок, в котором элементы покидают стек. Перемещаясь по графу, вы начинаете с узла 1 и сначала переходите к узлу 2 (поскольку назначение требует, чтобы вы выбирали узлы в их естественном порядке), добавляя узел 2 в стек. Затем вы продолжаете обходить узлы, к которым ведет узел 2, в результате чего ваш стек будет равен 2, 4, 5. Затем, возвращаясь к выбору между 2 и 3, вы добавляете 3 в стек, извлекаете каждый элемент стека, выводя их, когда вы идете. Таким образом, сначала печатается 1, затем, вынимая элементы стека, вы получаете 3, 5, 4, 2.

Подробнее здесь: https://stackoverflow.com/questions/537 ... cted-graph
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»