Я создаю программу, которая запрашивает, сколько существует узлов, если они есть, зависят от другого, и затем выводит окончательный упорядоченный список. Например, если есть 3 узла ['a', 'b', 'c']
, если b
зависит от c
, то окончательный список будет выглядеть следующим образом: ['a', 'c', 'b']
(поскольку c будет предшествовать b).
Я искал что-то, что называется инъекцией зависимости, однако это не совсем понятно для меня и еще больше сбивает с толку.
Пока мой код:
import string
alpha = string.ascii_lowercase # Importing the alphabet to convert
def convert(x): # Converting the numeric value into alphabetic character
for i in range(1, x):
return list(alpha[0:x])
x = int(input("Enter how many nodes there are: "))
print(convert(x))
new_list = []
Где я спросил пользователя, сколько узлов, а затем вывел алфавитный список. new_list
должен быть окончательным упорядоченным списком, в котором я застрял.
Я хочу знать, как сделать что-то вроде:
Which node is node 'a' dependent on? (Input: None)
Which node is node 'b' dependent on? (Input: c)
Which node is node 'c' dependent on? (Input: None)
output: ['a', 'c', 'b']
Если есть узел, который не связан ни с каким другим, не имеет значения, в каком порядке он находится, поэтому выходные данные также могут быть ['c', 'a', 'b']
или ['c', 'b', 'a']
, пока узел «родитель» находится перед зависимый узел.
Редактировать: Круговые зависимости недействительны. Поэтому, если a
зависит от c
и наоборот, появится сообщение об ошибке.