Используйте BFS, чтобы найти узел с наименьшим значением - PullRequest
0 голосов
/ 03 сентября 2018

Справочная информация: У меня есть следующий список узлов. Данные структурированы как (nodeID: nodevalue, nodeID: nodeValue) представляет ребро:

enter image description here

Цель: Создать рекурсивную BFS, чтобы найти узел с наименьшим значением.

Что уже сделано:

  1. Я предварительно обработал данные и у меня есть четыре списка, содержащие целые числа. Эти списки имеют имена node1ID, node1value, node2ID и node2value.

  2. Сделан словарь Node1D и Node2ID. (вызовите это как словарь 1), что делается для того, чтобы получить все соединительные узлы для Node1, как показано ниже Например, ключ 0 является родительским узлом, а значения 1,2,3,4, ... и т. Д. Являются дочерними узлами.

enter image description here

  1. Я нахожусь в процессе реализации рекурсивной BFS в Python для прохождения через узлы с использованием словаря 1

Вопрос: Во время обхода, как мне найти узел с минимальным значением? Я попытался создать другой словарь, похожий на словарь 1 (назовите его словарь 2), который содержит Node1Value в качестве ключа и Node2value в качестве значений. Например: ключ 320 является значением Node1Value, а все 8708, 2738 ... и т. Д. Являются значением соединительных узлов.

enter image description here

Но проблема в том, что словарь 2 не имеет того же индекса, что и словарь 1 (содержащий идентификатор узла). Например, я планировал использовать словарь 1 для BFS, получить индекс для текущего узла и проверить его значение в словаре 2. Однако я обнаружил, что словарь не сохраняется с использованием индекса.

...