Функция для перевода ввода в одной форме в другую - PullRequest
0 голосов
/ 31 мая 2018

У меня проблема с переводом ввода из файла .txt (указан ниже), где первая строка (A, B) дает нам информацию о:

A: количестве узлов(уникальные номера в файле),

B: количество соединений между заданными узлами (например, 1-0, 0-1):

и остальными строками,показаны соединения между заданными узлами.

Поэтому я хочу перевести ниже ввода:

3 2
0 1
1 2

примерно так:

{ 0 : [1],   
  1 : [2], 
  2 : [],  
   }

, если у данного узла (номера) нет дальнейших соединений (дочерних элементов), его пара равна 2: []

Другой пример, но с циклом:

2 2
1 0
0 1

{ 1 : [0],
  0 : [1], 
   }

Спасибо за помощь заранее:)

PS

Есть код в js, однако я не знаю, как его перевести, и, кроме того, он не делаетне связывает бездетный узел с [] :

const USER_INPUT = "2 2\n1 0\n0 1";

function getInputLines(input) {
  const LINE_SEPARATOR = '\n';
  return input.split(LINE_SEPARATOR);
}

function getLineElements(line) {
  const ELEM_SEPARATOR = ' ';
  return line.split(ELEM_SEPARATOR)
}

PSS

python cОда для поиска цикла в данном графике:

def cycle_exists(G):                     
color = { u : "white" for u in G  }  
found_cycle = [False]                 

    if color[u] == "white":
        dfs_visit(G, u, color, found_cycle)
    if found_cycle[0]:
        break
return found_cycle[0]

def dfs_visit(G, u, color, found_cycle):
if found_cycle[0]:                          
    return
color[u] = "gray"                           
for v in G[u]:                               
    if color[v] == "gray":                     
        found_cycle[0] = True       
        return
    if color[v] == "white":                    
        dfs_visit(G, v, color, found_cycle)
color[u] = "black"          

и ввод:

graph = { 1 : [0], 
          0 : []    
            }                 

Пример:

>> cycle_exists (graph)

>> False

1 Ответ

0 голосов
/ 31 мая 2018

Вот код, чтобы делать то, что вы хотите.Этот код также правильно обрабатывает первый пример, который вы дали до того, как отредактировали свой вопрос: если узел имеет соединения с более чем одним другим узлом, все эти другие узлы находятся в списке.Это предполагает, что узлы имеют идентификаторы, которые являются последовательными неотрицательными целыми числами, начиная с нуля, как во всех ваших примерах.с записями, возможно, в другом порядке, чем в приведенных вами примерах, что является природой словаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...