Часть проблемы требует, чтобы дерево печаталось в порядке уровней, поэтому, если дерево ввода:
("hello", (("a", ()), ("b", (("cde", ()), ("fg", ())))))
тогда вывод должен быть,
hello
a b
cde fg
* Примечание: входные деревья могут иметь любое количество дочерних элементов *
То, что кажется здесь уникальным, это то, что дерево должно быть введено с помощью
tree = eval(input('Enter tree: '))
Большинство подобных проблем имеют тенденцию использовать класс Node и / или компонент очереди, которые я не нашел полезными для этой проблемы, и я не могу найти случаев, когда функция eval используется для ввода.
Это то, что я имею до сих пор,
def level_order(node):
label, children = node
print(label)
for child in children:
level_order(child)
tree = eval(input('Enter tree: '))
level_order(tree)
Моя текущая программа способна распечатать содержимое, что, по моему мнению, является обходом предварительного заказа. Как заставить его печатать в порядке уровней?