스택

- 가장 마지막으로 들어간 데이터가 가장 첫 번째로 나오는 성질(LIFO)을 가진 자료 구조
 
- 삽입(push) 삭제(pop) O(1) , 탐색 O(n)이 소요
 
- 재귀함수, 깊이우선탐색(DFS) , 웹브라우저 방문 기록 등에 쓰임
 
큐

- 먼저 집어 넣은 데이터가 먼저 나오는 성질(FIFO)을 지닌 자료 구조
 
- 삽입(enque) 삭제(deque) O(1), 탐색 O(n)이 소요
 
- 구현 방식
- Array-Based queue: enqueue와 dequeue 과정에서 남는 메모리가 생깁니다. 따라서 메모리의 낭비를 줄이기 위해 주로 Circular queue형식으로 구현을 합니다.
 
- List-Based: singly-lilnked list로 구현, 재할당이나 메모리 낭비의 걱정을 할 필요가 없어집니다.
 
 
- 활용예시
- Cache구현, 프로세스 관리, 너비우선탐색(BFS)등에 사용
 
 
우선순위 큐
- 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 자료구조
 
- Priority queue는 
push O(logn) , pop O(logn) 
- Heap을 기반으로 구현
 
Map
- 특정 순서에 따라 키와 매핑된 값의 조합으로 형성된 자료구조
 
- 레드 블랙 트리 자료구조를 기반으로 형성되고, 삽입하면 자동으로 정렬된다.
 
- 해시 테이블을 구현할때 쓰인다.
 
Set
- 특정 순서에 따라 고유한 요소를 저장하는 컨테이너
 
- 중복 요소는 없고 오로지 unique 값만 저장하는 자료구조