Skip to content

Instantly share code, notes, and snippets.

@torpedo87
Created December 5, 2018 09:31
Binary Tree

binary tree

  • 각 노드가 최대 2개의 자식노드를 갖는 트리
  • BinaryNode : value, leftChild, rightChild

in order traverse

  • leftChild -> current -> rightChild
  • 재귀를 이용
  • binary search tree 라면 오름차순 탐색이 된다!!!!
public func traverseInOrder(visit: (Element) -> Void) {
    leftChild?.traverseInOrder(visit: visit)
    visit(value)
    rightChild?.traverseInOrder(visit: visit)
  }

pre order traverse

  • current -> left -> right
  • 재귀를 이용
public func traversePreOrder(visit: (Element) -> Void) {
    visit(value)
    leftChild?.traversePreOrder(visit: visit)
    rightChild?.traversePreOrder(visit: visit)
  }

post order traverse

  • left -> right -> current
  • 루트는 제일 마지막
  • 재귀를 이용
public func traversePostOrder(visit: (Element) -> Void) {
    leftChild?.traversePostOrder(visit: visit)
    rightChild?.traversePostOrder(visit: visit)
    visit(value)
  }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment