Вопрос

Я пытаюсь выполнить DFS на минимальном размашнем дереве, которое содержит 26 узлов. Узлы называются «a» для 'z', а дерево неправлено.

У меня есть пустая функция, называемая DFS, которую я пытаюсь написать, которая (я предполагаю) принимает дерево (2D -массив) startNode (случайно выбранного узла 'M') и EndNode (случайно выбранного узла 'z') Анкет

Веса подключенных узлов идентифицируются в параметре 2D массива, но как мне на самом деле начать посещать узлы?

Все, что требуется, - это печатать каждое название NodeName в порядке обхода DFS.

Нужно ли мне создать node_class для каждого узла в 2D -массиве ??

Это было полезно?

Решение

В глубине сначала поиск, вам просто нужно быть уверенным, что вы пересекаете всю длину края к листовому узлу, прежде чем двигаться вверх по дереву, чтобы получить следующую ветвь. Я не уверен, что понимаю цель проблемы, но я верю, что то, что вы попадаете, правильно. Чтобы отслеживать, какой узел посещается и каково общее расстояние/вес для любого данного узла от начального узла, необходимо для отслеживания дополнительной информации, а именно, если он был посещен или нет, и какой самый низкий вес для каждого узла является Анкет Предполагая, что вы делаете класс «обертки», который будет нести эти два дополнительных фрагмента информации, по умолчанию посещают False и по умолчанию вес в бесконечность или какое -то очень большое количество. http://en.wikipedia.org/wiki/dijkstra%27s_algorithm

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top