1. 개요

이진트리의 균형이 맞고 간결함이 유지된다면 검색, 삽입, 삭제 모두 O(logN)의 성능을 보이는 장점이 있기 때문에 이를 개선한 자료구조이다.

데이터베이스와 파일시스템에서 많이 사용하는 자료구조이다.

2. B Tree

정의

<aside> 💡 다수의 키를 가진 노드로 구성되어 다방향성 탐색이 가능한 트리이다. 이진트리를 확장해서 더 많은 수의 자식을 가질 수 있게 일반화한 자료구조이다. 하나의 레벨에 더 많이 저장되는 것 뿐만 아니라 트리의 균형을 자동으로 맞추는 단순하지만 효율적인 로직을 갖고 있다.

</aside>

B-Tree는 자식 노드의 개수가 2개 이상인 트리이다.

노드내의 데이터가 1개 이상일수가 있고, 노드내 최대 데이터 수가 2개라면 2차 B-Tree, 3개라면 3차 B-Tree , … M개라면 M차 B-Tree 라고 한다.

B-Tree 성립 조건

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2df9a496-bb3a-48f7-abd7-034f3ffb3f1d/Untitled.png

root 노드에 데이터가 1, 2, 3 3개이므로 자식 노드의 개수는 4개 입니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/127ffa4b-14c0-45c2-8640-c8328390b4dc/Untitled.png