- 각 노드가 최대 2개의 자식노드를 갖는 트리
- BinaryNode : value, leftChild, rightChild
- leftChild -> current -> rightChild
- 재귀를 이용
- binary search tree 라면 오름차순 탐색이 된다!!!!
public func traverseInOrder(visit: (Element) -> Void) {
leftChild?.traverseInOrder(visit: visit)
visit(value)
rightChild?.traverseInOrder(visit: visit)
}
- current -> left -> right
- 재귀를 이용
public func traversePreOrder(visit: (Element) -> Void) {
visit(value)
leftChild?.traversePreOrder(visit: visit)
rightChild?.traversePreOrder(visit: visit)
}
- left -> right -> current
- 루트는 제일 마지막
- 재귀를 이용
public func traversePostOrder(visit: (Element) -> Void) {
leftChild?.traversePostOrder(visit: visit)
rightChild?.traversePostOrder(visit: visit)
visit(value)
}