자료구조

1. Hash Table?- 해시테이블은 해싱을 통해서 데이터를 저장하는 자료구조이다.- 즉, 해시 함수(Hash Function)을 사용해서 변환한 값을 index로 사용해 key와 data를 저장하는 자료구조이다.- 이러한 Hash table은 삽입, 삭제, 탐색이 대부분 O(1)으로 빠르다. - 대부분 이라는 건 아닌 경우도 있다는 걸까? / 이에대한 의문은 찬찬히 알아가보자. 2. Hash Function(해시 함수)- Hash Function은 임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 mapping해주는 함수이다.- mapping되기전 입력되는 것을 key라고 한다면, - 이 key를 hash function을 통해 반환되는 것을 Hash value(해시 값)이라고 한다.- 대표적인 ..
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 위치에 데이터를 추가하는 연산이다. - 데이..