서울대학교 전기정보공학부 2024-2 자료구조의 기초 수업 과제를 백업해 둔 git입니다. 문제는 각 디렉토리의 Readme.md에 저장되어 있으며, include 폴더를 제외한 대부분의 코드는 뼈대로 주어졌습니다.
std::unique_ptr를 사용해 메모리를 자동으로 관리하며, 재귀적 로직을 활용하여 추가와 삭제를 간결하게 구현한 이진 탐색 트리입니다.
노드 분할, 병합, 형제 노드로부터의 키 차용 등 B-트리의 주요 기능을 포함하고 있는 B-tree입니다. 스마트 포인터 대신 수동 메모리 관리를 사용하였고, 이 과정에서 memory leak이 일어나지 않도록 포인터를 특수하게 관리했습니다.
노드 회전(좌회전/우회전), 색상 전환, 노드 병합 등의 메서드를 포함하는 Left-Leaning RB-tree입니다. std::unique_ptr를 활용하여 메모리를 안전하게 관리하며, 삽입, 삭제, 탐색 및 최소/최대 키 값 조회 등의 기능을 구현해 두었습니다.