Skip to content

Commit 1f363a5

Browse files
authored
Update 1.py
1 parent fe622e9 commit 1f363a5

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

21/1.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
class Node:
2+
def __init__(self, data, left_node, right_node):
3+
self.data = data
4+
self.left_node = left_node
5+
self.right_node = right_node
6+
7+
# 전위 순회(Preorder Traversal)
8+
def pre_order(node):
9+
print(node.data, end=' ')
10+
if node.left_node != None:
11+
pre_order(tree[node.left_node])
12+
if node.right_node != None:
13+
pre_order(tree[node.right_node])
14+
15+
# 중위 순회(Inorder Traversal)
16+
def in_order(node):
17+
if node.left_node != None:
18+
in_order(tree[node.left_node])
19+
print(node.data, end=' ')
20+
if node.right_node != None:
21+
in_order(tree[node.right_node])
22+
23+
# 후위 순회(Postorder Traversal)
24+
def post_order(node):
25+
if node.left_node != None:
26+
post_order(tree[node.left_node])
27+
if node.right_node != None:
28+
post_order(tree[node.right_node])
29+
print(node.data, end=' ')
30+
31+
n = int(input())
32+
tree = {}
33+
34+
for i in range(n):
35+
data, left_node, right_node = input().split()
36+
if left_node == "None":
37+
left_node = None
38+
if right_node == "None":
39+
right_node = None
40+
tree[data] = Node(data, left_node, right_node)
41+
42+
pre_order(tree['A'])
43+
print()
44+
in_order(tree['A'])
45+
print()
46+
post_order(tree['A'])
47+
48+
'''
49+
[예시 입력]
50+
7
51+
A B C
52+
B D E
53+
C F G
54+
D None None
55+
E None None
56+
F None None
57+
G None None
58+
59+
[예시 출력]
60+
A B D E C F G
61+
D B E A F C G
62+
D E B F G C A
63+
'''

0 commit comments

Comments
 (0)