Skip to content

Commit cf69aee

Browse files
committed
[BOJ] 5639 이진 검색 트리 (G4)
1 parent f04e09f commit cf69aee

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

김지호/2주차/260109.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import sys
2+
3+
# 재귀 깊이 제한 늘리기 (필수!)
4+
sys.setrecursionlimit(20000)
5+
6+
class Node:
7+
def __init__(self, value):
8+
self.value = value
9+
self.left = None
10+
self.right = None
11+
12+
class BinarySearchTree:
13+
def __init__(self):
14+
self.root = None
15+
16+
def insert(self, value):
17+
if self.root is None:
18+
self.root = Node(value)
19+
return
20+
21+
current = self.root
22+
while True:
23+
if value < current.value:
24+
if current.left is None:
25+
current.left = Node(value)
26+
break
27+
current = current.left
28+
else:
29+
if current.right is None:
30+
current.right = Node(value)
31+
break
32+
current = current.right
33+
34+
# 후위 순회
35+
def print_postorder(self):
36+
self._postorder_recursive(self.root)
37+
38+
def _postorder_recursive(self, node):
39+
if node is not None:
40+
self._postorder_recursive(node.left) # Left
41+
self._postorder_recursive(node.right) # Right
42+
print(node.value)
43+
44+
tree = BinarySearchTree()
45+
46+
lines = sys.stdin.readlines()
47+
for line in lines:
48+
try:
49+
num = int(line.strip())
50+
tree.insert(num)
51+
except ValueError:
52+
continue
53+
54+
tree.print_postorder()

0 commit comments

Comments
 (0)