Python для поиска недвоичных дочерних узлов дерева - PullRequest
0 голосов
/ 10 октября 2019

Я только начал изучать 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)```
...