7.3 이진 탐색 트리 설계 및 사용

이번에는 이진 탐색 트리 설계 및 이를 사용하는 프로그램을 작성합시다. 여기에서 구현할 이진 탐색 트리는 도서 개체를 보관하고 삭제, 검색, 전체 보기를 할 수 있는 기능을 제공하기로 해요.

STL에서 제공하는 map 사용하는 방법을 익히고 난 후에 다시 한 번 STL의 map을 모델로 자신의 map을 구현할 것입니다. 여기에서는 이진 탐색 트리 개념을 잡기 위해 비교적 간단하게 구현해 보아요.

프로젝트를 생성한 후에 공통으로 사용할 파일(3.1.1 참고)을 추가하세요. 그리고 여기에서 보관할 도서를 Book 클래스로 정의합시다.

구현도 간단하겠죠. 별다른 설명은 필요없을 것이라 생각합니다.

여기서 구현할 이진 탐색 트리는 도서를 보관할 것입니다. 먼저 이진 탐색 트리의 노드를 정의하기로 해요.

이진 탐색 트리는 BinSearchTree 이름의 클래스로 정의합시다.

구체적인 구현은 나머지 부분을 구현한 후에 하기로 해요.

도서 관리 프로그램을 표현할 App 클래스를 추가하여 구현합시다.

이제 App의 각 기능을 구현합시다.

진입점 main에서는 App 개체를 생성하고 가동 후에 소멸하세요.

 

다음은 이제까지 작성한 코드입니다.