Binary Tree 아래 두가지를 만족하는 트리 1) 어떠한 노드를 기준으로 왼쪽은 기준이 되는 노드보다 전부다 작아야된다. 2) 어떠한 노드를 기준으로 오른쪽은 기준이 되는 노드보다 전부다 커야된다. 일반 배열에 비해 추가, 제거, 검색의 작업횟수가 크게 줄어든다. Heap은 완전이진트리기 때문에 배열이나 리스트로 구현했지만 이진탐색트리는 완전 이진 트리가 아니기 때문에 Node로 구현 Search 정렬되지 않은 배열의 탐색은 순차적으로 탐색하기 때문에 O(n) 이진 탐색 트리는 큰값과 작은값을 비교하면서 찾기 때문에 O(log n) 루트노드가 없는경우 nil반환 data와 노드의 왼쪽자식과 오른쪽 자식을 비교해가면서 확인 노드 반환 func search(_ data: T) -> Node? { if ..