1. Stack

Stack

- 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조이다.

- 마지막으로 넣은 것이 가장 먼저 나오기 때문에 LIFO(Last In First Out)라고도 한다.

- 일차원 배열 하나로 구현한다.

연산 설명
push 스택에 자료를 넣는 연산이다.
pop 스택에서 자료를 빼는 연산이다.
top 스택의 가장 위에 있는 자료를 보는 연산이다.
empty 스택이 비어있는지 아닌지를 알아보는 연산이다.
size 스택에 저장되어 있는 자료의 개수를 알아보는 연산이다.

 

2. Queue

- 한 쪽 끝에서만 자료를 넣고 다른 한 쪽 끝에서만 뺄 수 있는 자료구조이다.

- 먼저 넣은 것이 가장 먼저 나오기 때문에 FIFO(First In First Out)라고도 한다.

- 일차원 배열 하나로 구현한다.

연산 설명
add 큐에 자료를 넣는 연산이다.
offer 큐에 자료를 넣는 연산이다.
poll 큐에서 자료를 빼는 연산이다.
front 큐의 가장 앞에 있는 자료를 보는 연산이다.
back 큐의 가장 뒤에 있는 자료를 보는 연산이다.
empty 큐가 비어있는지 아닌지를 알아보는 연산이다.
size 큐에 저장되어 있는 자료의 개수를 알아보는 연산이다.

 

3. Deque(Double-ended queue)

- 양 끝에서 자료를 넣고 양 끝에서 뺄 수 있는 자료구조이다.

- 덱을 통해 스택과 큐를 구현할 수 있다.

연산 설명
push_front 덱의 앞에 자료를 넣는 연산이다.
push_back 덱의 뒤에 자료를 넣는 연산이다.
pop_front 덱의 앞에서 자료를 빼는 연산이다.
pop_back 덱의 뒤에서 자료를 빼는 연산이다.
front 덱의 가장 앞에 있는 자료를 보는 연산이다.
back 덱의 가장 뒤에 있는 자료를 보는 연산이다.

 

참고

- 『알고리즘 기초 1/2』

'Algorithm & Data Structure' 카테고리의 다른 글

Permutation  (0) 2022.03.04
Prime Number  (0) 2022.03.04
Greatest Common Divisor, Least Common Multiple  (0) 2022.03.04
Dynamic Programming  (0) 2022.01.05
Time Complexity  (0) 2021.12.01