File tree Expand file tree Collapse file tree 1 file changed +54
-0
lines changed
Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Original file line number Diff line number Diff line change 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 ()
You can’t perform that action at this time.
0 commit comments