가장 많이 쓰이는 완전 이진트리에 대해 정리하겠습니다. 완전 이진트리는 마지막 레벨을 제외한 나머지 레벨의 자식수가 2개로 꽉 차 있고 마지막 레벨에서는 왼쪽부터 자식이 차는 트리입니다. 한쪽으로 쭉 뻗어있는 편향트리도 이진트리라고는 할 수 있지만, 완전이진트리는 아니죠.

Untitled

완전 이진트리는 각 레벨에 최대 2^N개의 노드가 들어갈 수 있죠. 이로인해 총 노드의 수는 최대 2^k -1개 까지 가질 수 있습니다.

이진탐색트리

이진탐색트리는 이진트리의 성질과 함께 부모노드와 자식노드간의 비교에 따라 왼쪽, 오른쪽 나누어 저장하는 자료구조입니다.

오른쪽 자식노드는 부모보다 커야하고, 왼쪽자식노드는 부모보다 작아야하는 규칙을 갖죠. 이외에도 각 노드는 유일한 값을 가져야 한다는 추가 규칙도 있습니다.

따라서 탐색에 소요되는 시간복잡도는 O(logN)입니다. 다만 최악의 경우 편향트리가 되어 O(N)이 될 수도 있습니다.

특정

BST(Binary Search Tree의 핵심 연산)