이진탐색트리

알고리즘, 자료구조

[자료구조-JS] 이진탐색트리 너비우선탐색(BFS) 구현

너비우선탐색이란 무엇인가? 트리나 그래프를 탐색하는 기법 중 하나로써 너비(Breadth)를 우선적으로 탐색하는 방법이다. 너비우선탐색 구현을 위해서 보통 큐(Queue) 자료구조를 이용한다. 너비우선탐색의 동작 루트 노드부터 탐색을 시작한다. 기준 노드에 자식 노드들이 존재한다면 큐에 추가하고, 자기 자신은 큐에서 나온다. 위의 과정을 반복한다. 큐에 아무것도 존재하지 않게 된다면 탐색이 종료된다. 너비우선탐색 주의사항 만약 너비가 넓은 트리나 그래프라면 큐에 저장해야하는 너비 요소들이 많아지므로 공간복잡도가 증가한다. 따라서 너비우선탐색을 효과적으로 사용하기 위해서는 너비가 좁은 트리나 그래프를 대상으로 사용하는 것이 좋다. 구현 // 트리 구현체 class BST { constructor() { t..

알고리즘, 자료구조

[자료구조-JS] 이진탐색트리(Binary Search Tree) 구현

사진출처 : https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%A7%84_%ED%83%90%EC%83%89_%ED%8A%B8%EB%A6%AC 트리란 무엇인가? 트리는 부모, 자식 노드의 관계를 정의한 자료구조라고 볼 수 있다. 트리에 속한 노드는 부모-자식 관계에 따라 부모가 자식을 가르키는 방향으로 진행된다. 이 때 모든 노드는 루트 노드와 멀어지는 방식으로 연결된다. 이진 탐색 트리의 동작 모든 부모 노드가 최대 2개의 자식 노드(left, right)를 가진다. (모든 이진트리의 공통점) 왼쪽 자식 노드는 부모보다 항상 작고, 오른쪽 자식 노드는 부모보다 항상 크다. 이진 탐색 트리가 단순 이진 트리보다 빠른 이유 단순 이진 트리는 부모 노드가 최대 2개의 자식노드만 가진..

2DC
'이진탐색트리' 태그의 글 목록