Я только начал изучать Python (поэтому я совершенно новичок), и мне нужно написать некоторый код для обхода недвоичного дерева и распечатать все дочерние узлы для любого заданного узла ..
По сути, у меня есть древовидная структура: A = {'0' :( '1', '2', '3'), '1' :( '4'), '2' :( '5',' 6 '),' 3 ':(),' 4 ':(' 7 ',' 8 '),' 8 ':(' 9 ',' 10 ',' 11 ')}
И что мне нужно, так это: например, для данного узла 4 я хочу распечатать 7 и 8. Для данного узла 8 - распечатать 9, 10, 11. Для данного узла 1 - 4,7,8,9,10. 11 И так далее.
Может ли кто-нибудь помочь мне направить меня в правильном направлении? Я читал и просматривал примеры того, как сделать это для двоичных деревьев, но я полностью потерян, как сделать это для моего конкретного случая. Это то, что я пытался до сих пор для упрощенной версии (я нарезалмое дерево сводится к двоичному, просто чтобы поиграть с каким-то кодом в надежде выяснить это), но я не могу обобщить его в своем конкретном случае .. Кстати, я использую Python 3.7 на Anaconda (Jupyter Notebook)
class Node:
def __init__(self,key):
self.left = None
self.right = None
self.val = key
def printPreorder(root):
if root:
print(root.val)
printPreorder(root.left)
printPreorder(root.right)
# Driver code
root = Node(0)
root.left = Node(1)
root.right = Node(2)
root.right.left = Node(5)
root.right.right = Node(6)
root.left.left = Node(4)
print ("Preorder traversal of binary tree is")
printPreorder(root)```