BST Traversal

Tiffany ·2024년 3월 8일
0

AlgoExpert

목록 보기
7/20

inorder,preorder,postorder 순서를 아느냐 물어보는 문제 같다.

def inOrderTraverse(tree, array):
    # Write your code here. 
    if tree == None:
        return 
    if tree != None:
        inOrderTraverse(tree.left, array)
        array.append(tree.value) #1, 2, 5, 5, 10, 15, 22, 
        inOrderTraverse(tree.right, array)
    return array 


def preOrderTraverse(tree, array):
    # Write your code here.
    if tree == None:
        return
    if tree != None: 
        array.append(tree.value) #10, 5, 2, 1 ,5, 15, 22  
        preOrderTraverse(tree.left, array) 
        preOrderTraverse(tree.right, array)
    return array


def postOrderTraverse(tree, array):
    # Write your code here.
    if tree == None:
        return 
    if tree != None:
        postOrderTraverse(tree.left, array)
        postOrderTraverse(tree.right, array) 
        array.append(tree.value)
    return array 

먼저 리컬시브는 멈춰야하는 구간이 있어야 무한으로 작동하지 않는데, tree == None 일때 리턴해주고 아니경우에는 순서에따라 (인오더인경우: 왼쪽 -> 어레이 출력 -> 오른쪽) 각각의 함수를 불러주면 된다.

profile
Love what you do and don't quit.

0개의 댓글