2-3 Tree
이전 글에서 다뤘던 Binary Tree 와 Binary Search Tree 는 자식 노드를 최대 2개 밖에 갖지 못한다. 하지만 자식 노드를 3개 갖도록 한 Tree 가 2-3 tree 라고 부른다. 2-3 tree의 특징은 아래와 같다. 왜 2-3 tree 라고 부르냐면, degree (child node의 수)가 2 또는 3이기 때문이다. 즉, 최소 child 의 개수는 2개라는 의미이다. 2-3 Tree는 다음과 같은 특징을 갖는다.하나의 노드는 최대 2개의 key (3개의 자식 노드)를 갖는다.
2-3 tree는 self-balancing tree 다.
모든 leaf node 는 같은 레벨을 갖는다.
모든 internal node는 항상 2개 이상의 자식 노드를 갖고 있어야 한다. 그렇지 않으면 자식 노드와 merge 가 되어 버린다.
2-4 이유 때문에 balance 가 깨지면 부모로부터 key 를 빌려오는 행위를 한다.
Insert
삽입은 다음과 같은 과정을 거친다.기본적으로 leaf node 까지 간 후 삽입하면서 rebalancing 을 진행한다.
삽입을 할 때는 leaf node에서 부모로 타고 올라가는 방식을 취하는데, 이 방법을 상향식 이라고 한다.