У меня проблема с переводом ввода из файла .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