반응형
이진트리의 삽입과 삭제는 [Binary Tree] 이진트리(1)에 있다
오늘은 Pre order, In oder, Post order에 대하여 알아보자!
예전에 정보처리기사와 수업을 들으면서
Pre = PLR
IN = LPR
Post = LRP
P(parent), L(left), R(right)순이라고 그냥 외웠었다.
class BinaryTree:
def preorder(self):
if self.head != None:
self.__preorder(self.head)
def __preorder(self, cur):
self.preorder_list.append(cur.val)
if cur.left != None:
self._preorder(cur.left)
if cur.right != None:
self._preorder(cur.right)
def inorder(self):
if self.head != None:
self._inorder(self.head)
def __inorder(self, cur):
if cur.left != None:
self.__inorder(cur.left)
self.inorder_list.append(cur.val)
if cur.right != None:
self.__inorder(cur.right)
def postorder(self):
if self.head != None:
self._postorder(self.head)
def __postorder(self, cur):
if cur.left != None:
self.__postorder(cur.left)
if cur.right != None:
self.__postorder(cur.right)
self.postorder_list.append(cur.val)
5, 3, 7, 1, 4를 add해서 넣고 결과값은 아래와 같이 나오면 된거당!
preorder = [5, 3, 1, 4, 7]
inorder = [1, 3, 4, 5, 7]
postorder = [1, 4, 3, 7, 5]
참고: 허민석님 유투브
반응형
'Data > python·알고리즘' 카테고리의 다른 글
[Graph] BFS(Breadth first Search), 넓이우선탐색 (0) | 2018.09.25 |
---|---|
[Graph] DFS(Depth First Search), 깊이우선탐색 (0) | 2018.09.24 |
[Binary Tree] 이진트리 (1) - 삽입, 삭제 (0) | 2018.09.24 |
[heap sort] 힙 힙 힙! (0) | 2018.09.24 |
[Linked list] Linked list 코드 (0) | 2018.09.24 |
댓글