[Data Structure] Binary Search Tree
이진 탐색 Tree (Binary Search Tree)이진 탐색 Tree는 데이터의 삽입, 삭제, 탐색 등이 자주 발생하는 경우에 효율적인 구조이다. 같은 값을 갖는 Node가 없어야 한다. 왼쪽 Sub Tree에 있는 모든 데이터는 현재 Node의 값보다 작고, 오른쪽 Sub Tree에 있는 모든 Node의 데이터는 현재 Node의 값보다 크다. 데이터
이진 탐색 Tree (Binary Search Tree)이진 탐색 Tree는 데이터의 삽입, 삭제, 탐색 등이 자주 발생하는 경우에 효율적인 구조이다. 같은 값을 갖는 Node가 없어야 한다. 왼쪽 Sub Tree에 있는 모든 데이터는 현재 Node의 값보다 작고, 오른쪽 Sub Tree에 있는 모든 Node의 데이터는 현재 Node의 값보다 크다. 데이터
이진 트리 (Binary tree)이진 트리는 모든 Node들의 자식 Node가 두 개 이하인 트리를 의미한다. 서브 트리를 왼쪽 서브 트리와 오른쪽 서브 트리로 구분한다. 단말 Node를 제외한 나머지 Node가 두 개의 자식 Node를 가지고 있는 트리를 완전 이진 트리(complete binary tree)라고 한다. 트리의 마지막 level까지 모든
Queue는 각 Data들을 순차적으로 넣었다가 순차적으로 빼내는 FIFO(First In First Out) 구조이다. 기본 연산으로 push로 rear에 데이터를 추가하고 pop으로 front의 데이터를 가져오는 방식을 가진다. 배열(Array)로 구현한 Queue12345678910111213141516171819202122232425262728293
Stack은 각 Data들을 순차적으로 넣었다가 역순으로 빼내는 LIFO(Last In First Out) 또는 FILO(First In Last Out) 구조이다. 기본 연산으로 push로 top에 데이터를 추가하고 pop으로 top의 데이터를 가져오는 방식을 가진다. Stack은 제한된 용량을 가지도록 구현되기 때문에 Stack이 가득 찼을 때 push
Linked List는 각 Data들을 Pointer로 연결하여 관리하는 구조이다. 첫 번째 Node인 Head pointer가 다음 Node를 가리키고 그 Node는 다음 Node를 가리킨다. 맨 마지막 Node에는 더 이상 다음 Node를 가리키는 Pointer가 없는데 이를 Tail Node라 한다. 단순 Linked list (Singly Linke