▲ 2-3-4 Tree의 구조
▲ Tree Node
▲ Class Diagram
▲ Sequence Diagram of 'Search'
▲ Sequence Diagram of 'Insert'
▲ Sequence Diagram of 'Delete'
▲ 8500여 개 Node, 10 Max depth까지 임의의 순서로 Insert/Delete의 반복 수행을 검증하는 과정
작품 설명 | Balanced Search Tree의 한 종류인 2-3-4 Tree를 생성하고 관리하는 C++ 프로그램입니다. |
---|---|
주요 기능 | * 2-3-4 Tree를 생성하고 Insert, Delete, Search를 수행합니다. * 추후 다른 곳에 활용하기 용이하도록 Tree를 생성하고 관리하는 Core 부분을 모듈화 하였습니다. * 콘솔 환경에서 동작하며, 수동으로 명령을 입력하는 Interactive Mode, 여러 명령을 한꺼번에 수행하는 Batch Mode, 무작위 순서로 명령을 수행하여 무결성을 검증하는 Debug Mode의 세 가지 동작 모드를 지원합니다. |
제작 기간 | 약 2주일 (2013.11.15 ~ 11.29) |
관련 분야 | 컴퓨터 공학 |
제작 동기 | 3학년(2013-2학기)에 수강했던 '알고리즘' 교과목의 Term Project입니다. |
제작 소감 | 규모가 그리 크지 않은 과제였으나, 프로젝트를 진행하는 것처럼 Git을 활용하여 형상관리를 하고, 문서화를 충실히 해 나가며 과제를 진행하였습니다. 또한, 무작정 코딩을 시작하지 않고, 프로그램의 흐름을 나타낸 Sequence Diagram을 먼저 작성한 뒤 그대로 코드로 옮기는 방법을 사용하여 시행착오를 최소화 하였습니다. 특히, 과제에는 명시되어 있지 않던 'Debug Mode'를 구현하여 테스트를 자동화하고, 혹시 모를 버그를 찾아내어 완벽하고 안정적인 프로그램을 만드는 데 주력하였습니다. 실제로 Debug Mode를 활용하여 미처 고려하지 못했던 버그를 발견하고, Sequence Diagram를 수정한 뒤 코드를 수정하는 순서로 디버깅을 진행하였습니다. 최종 테스트에서는 8500개 Node까지 Test를 수행하여 이상이 없음을 검증하였습니다. |
▲ 2-3-4 Tree의 구조
▲ Tree Node
▲ Class Diagram
▲ Sequence Diagram of 'Search'
▲ Sequence Diagram of 'Insert'
▲ Sequence Diagram of 'Delete'
▲ 8500여 개 Node, 10 Max depth까지 임의의 순서로 Insert/Delete의 반복 수행을 검증하는 과정