1. 트리(Tree)란? 트리는 *노드(Node)들이 부모-자식 관계로 연결된 자료구조를 의미한다. 하나의 최상위 노드에서 시작해 아래로 가지가 뻗어나가는 형태를 가진다. 이런 구조 덕분에 트리는 단순히 데이터를 담는 그릇을 넘어 계층을 표현하거나 범위를 나누어 탐색할 때 강점을 가지게 된다. 트리를 이해하기 위해 필요한 용어부터 정리해보자. *노드(Node) - 트리를 구성하는 하나의 데이터 단위 루트(Root) - 트리의 시작점, 가장 위에 있는 노드 부모/자식(Parent/Child) - 연결된 노드들 사이의 상하 관계 리프
1. 해시 테이블이란? 해시 테이블은 키(Key)를 해시 함수(Hash Function)에 입력하여 얻은 정수 값을 배열의 인덱스로 사용해 데이터를 저장하고 조회하는 자료구조다. 배열의 인덱스 접근 특성을 활용하기 때문에 평균적으로 탐색, 삽입, 삭제 연산을 O(1) 시간에 수행할 수 있는 것이 특징이다. [관련 자료구조] Map 키(Key)와 값(Value)의 쌍을 저장하고 관리하는 추상 자료형 Set 중복을 허용하지 않으며 특정 값의 존재 여부를 관리하는 추상 자료형 이러한 자료구조는 해시 테이블 기반으로 구현될 경우 평균적으로
1. 스택(Stack)이란? 스택은 "쌓는다"는 개념과 가장 잘 어울리는 자료구조다. 데이터를 차곡차곡 쌓아 올리는 형태로 저장하며 가장 마지막에 들어간 데이터가 가장 먼저 제거되는 후입선출(LIFO, Last-In-First-Out) 방식으로 동작한다. 주요 연산 스택은 구조적으로 한쪽 끝(Top)에서만 데이터의 접근, 삽입, 삭제가 이루어진다. push(item): 스택의 맨 위에 새로운 데이터를 추가한다. pop(): 스택의 맨 위에 있는 데이터를 제거하고 그 값을 반환한다. peek() 또는 top(): 스택의 맨 위에 있는
1. 배열 (Array) 배열이란 동일한 타입의 데이터를 연속된 메모리 공간에 저장하는 자료구조다. 각 요소는 인덱스를 통해 접근할 수 있으며 인덱스는 0부터 시작한다. 배열의 요소들이 동일한 타입인 이유는 각 요소의 크기가 같아야 인덱스를 이용해 데이터의 위치를 수학적으로 계산할 수 있기 때문이다. 데이터의 크기가 일정하면 시작 주소 + (데이터 크기 * 인덱스) 라는 연산을 통해 특정 위치의 요소에 즉시 접근할 수 있다. 또한 배열은 연속된 메모리 공간에 저장되므로 인접한 데이터가 함께 캐시에 로드될 가능성이 높아 캐시 히트율이