Binary Search Tree

    [Kotlin] Binary Search Tree Kotlin으로 구현해보기 : insert, search

    Binary Search Tree 구현하기 이전 글에서 Binary Search Tree가 무엇인지에 대해 살펴보았다. 이번 글에서는 이를 직접 구현해보려고 한다. 구현할 Binary Search Tree의 요구사항은 다음과 같다. 중복을 허용하지 않는다. 이미 있는 값의 추가 요청이 들어오면 아무런 동작을 하지 않고 반환한다. 노드는 임의로 다음과 같이 구성한다. data class Node(var value: Int) { var left: Node? = null var right: Node? = null } insert 메서드 구현하기 새로운 노드를 추가할 때는 다음과 같은 순서를 따른다. 추가 요청이 들어온 노드를 생성한다.(새로운 노드) 루트 노드가 null인지 확인 후 null이라면 새로운 노드..

    [Kotlin] Binary Search Tree란 무엇인가? Binary Search Tree의 한계와 시간 복잡도 알아보기

    Binary Search Tree란? Binary Search Tree는 Binary Tree의 한 종류로써, 데이터를 저장하고 탐색하기 위한 자료 구조이다. Binary Search Tree는 각 노드가 특정한 값을 가지고 있고, 각 노드의 왼쪽 서브트리에는 노드의 값보다 더 작은 값의 노드들이, 오른쪽 서브트리에는 더 큰 값의 노드들이 위치하도록 만들어진다. 이러한 특성으로 인해 Binary Search Tree는 아래와 같은 특징을 가진다. 값들이 정렬되어 있는 Binary Tree 구조이다 : 특정 노드를 기준으로 해당 노드 왼쪽에 있는 노드들은 모두 해당 노드의 값보다 작은 값을 가지며, 해당 노드 오른쪽에 있는 노드들은 해당 노드의 값보다 큰 값을 가진다. 위와 같이 정렬되어 있어, Binar..