Untitled
unknown
plain_text
2 years ago
957 B
8
Indexable
#python
class Node:
def __init__(self, key, left, right):
self.key = key
self.left = left
self.right = right
def inorder(root):
if root.key == -1:
return []
return inorder(root.left) + [root.key] + inorder(root.right)
def preorder(root):
if root.key == -1:
return []
return [root.key] + preorder(root.left) + preorder(root.right)
def postorder(root):
if root.key == -1:
return []
return postorder(root.left) + postorder(root.right) + [root.key]
n = int(input())
nodes = []
for i in range(n):
data = list(map(int, input().split()))
nodes.append(Node(data[0], data[1], data[2]))
for i in range(n):
left = nodes[i].left
right = nodes[i].right
nodes[i].left = nodes[left] if left != -1 else Node(-1, 0, 0)
nodes[i].right = nodes[right] if right != -1 else Node(-1, 0, 0)
print(*inorder(nodes[0]))
print(*preorder(nodes[0]))
print(*postorder(nodes[0]))
Editor is loading...
Leave a Comment