1. Binary Search Tree?- 이진 탐색(Binary Search)의 개념을 트리 형태의 구조에 점목한 자료구조- 각 노드 키가 왼쪽 서브트리에 있는 키들보다 크고, 오른쪽 서브트리에 있는 키들보다 작다.- 일반적으로 키값이 같은 노드는 복수로 존재하지 않아야 한다. 2. BST의 구조- 노드의 왼쪽 서브트리에는 그 노드의 값보다 작은 값들을 지닌 노드들로 이루어져 있다.- 노드의 오른쪽 서브트리에는 그 노드의 값보다 작은 값들을 지닌 노드들로 이루어져 있다.- 루트의 왼쪽 서브트리와 오른쪽 서브트리는 BST이다. 3. BST CODE구현3.1. BST에 사용되는 클래스 class Node: def __init__(self, key, value): self.key = ke..
0. Intro- CLRS 11챕터에서부턴 Hash Table에 대해서 알아가게 될 것이다.- 우선 본격적으로 알아가기전에 Direct-address tables에 대해서 알아보자. 1. Direct-address tables?- Direct-Address table은 해시 테이블의 한 종류로, 특정한 키 값을 사용하여 데이터를 직접적으로 저장하는 구조이다.- 즉, 데이터의 키를 직접 인덱스로 사용하여 데이터를 저장하거나 검색한다. 2. method2.1. Insert(삽입)def insert(table, k, value): table[k] = value 2.2. Search(검색)def search(table,k): return table[k] 2.3. Delete(삭제)def delete(table..
1. Queue?- 큐(Queue)는 선입선출(FIFO, First In First Out) 원칙을 따르는 선형 자료구조이다.- 먼저 들어온 데이터가 먼저 나가는 방식으로 작동된다.- 큐는 한 쪽 끝에서 데이털르 추가하고, 반대쪽 끝에선 데이터를 제거하는 특징이 있다.- 흔히 줄 서기나, 은행 창구에서의 대기열로 예를 들 수 있다.2. 큐의 구조- Front(앞쪽) : 데이터를 꺼내는 쪽이다. 가장 먼저 들어온 요소가 위치한 곳 - Rear(뒤쪽) : 데이터를 추가하는 쪽이다. 큐의 마지막 요소가 위치한 곳 3. 큐의 메소드3.1. enqueue(데이터 추가):- 데이터를 큐의 끝(Rear)에 추가하는 연산 3.2. dequeue(데이터 제거):- 큐의 앞(Front)에 있는 데이터를 제거하고 반환하는 ..
1. Intro- 스택은 후입선출(LIFO, Last In First Out) 구조의 선형 자료구조이다.- 데이터를 한 쪽 끝에서만 추가하거나 삭제할 수 있는 특징을 가지며, 보통 접시를 쌓아 올리는 것과 유사한 방식- 즉, 스택에서 가장 나중에 삽입된 요소가 가장 먼저 제거된다. 2. 스택의 주요 특징- 후입선출(LIFO) : -- 가장 마지막에 들어온 데이터가 가장 먼저 나간다.-- 스택의 구조적 특성 때문에 데이터를 삽입하거나 삭제할 수 있는 위치는 Top으로 고정된다. - 한 방향에서만 접근 가능:-- 스택은 끝부분에서만 데이터를 접근할 수 있기 때문에 중간에 삽입이나 삭제를 할 수 없다. 3. 스택의 메소드3.1. push()- 스택의 끝, 즉 Top 위치에 데이터를 추가하는 연산이다. - 데이..