728x90
⚠️ 내맘대로 작성한 코드이기 때문에 비합리적 진행과 근거없는 추론이 있을 수 있습니다!⚠️
Code
import sys
input = sys.stdin.readline
class Node:
def __init__(self, item, left, right):
self.item = item
self.left = left
self.right = right
def preorder(node):
print(node.item, end="")
if node.left != '.':
preorder(tree[node.left])
if node.right != '.':
preorder(tree[node.right])
def inorder(node):
if node.left != '.':
inorder(tree[node.left])
print(node.item, end="")
if node.right != '.':
inorder(tree[node.right])
def postorder(node):
if node.left != '.':
postorder(tree[node.left])
if node.right != '.':
postorder(tree[node.right])
print(node.item, end="")
num = int(input())
tree = {}
for _ in range(num):
node, left, right = map(str, input().split())
tree[node] = Node(item=node, left=left, right=right)
preorder(tree['A'])
print()
inorder(tree['A'])
print()
postorder(tree['A'])
Code 필수 요소
1. Class구현 방법
2. node를 활용해서 tree구조를 만드는 방법
이것만 생각해내면 절반은 끝났다.
//Class를 통한 Node생성
C언어에서 구조체를 만들어 값을 저장한 것 처럼 파이썬에선 Class를 만들어 값을 저장했다.
//for문을 통한 값 입력
tree라는 배열에 Node의 값들을 입력해줬다. 음... 이게 전부다.
추가적인 설명들은 내가 C언어로 작성했던 똑같은 문제에 가서 보면 된다.
https://naemamdaelo.tistory.com/7?category=1005618
얼마전에 C언어로 작성했던 코드를 파이썬으로 만들어봤다. 파이썬 공부를 시작한지 얼마 안돼서 코드가 매끄럽지도 않고, 내가 짠게 아닌 코드도 좀 있다. 히히 지송. 파이썬으로 트리 구조를 만들때 구조체를 써야하나 고민했었는데 유감이지만 파이썬에서 구조체 쓰는 방법을 모른다. 그래서 배열로 했다. 하하하. 파이썬은 쉬운거 같으면서 헷갈린단말야
instagram : @naemamdaelo_study_blog
https://www.instagram.com/naemamdaelo_study_blog/
-꿑-
728x90