자료구조 중에는 LIFO(Last In First Out: 후입선출)과 FIFO(First In First Out: 선입선출)가 있습니다.
스택(Stack)과 큐(Queue)가 바로 그러한 형태를 띄고 있습니다.
Stack Queue
(출처: https://blog.naver.com/coolten/140057846054)
stack: '~을 쌓다.' -> '가장 마지막에 쌓은 것을 뺀다.'뭐 이렇게 생각하시면 잘 기억나겠죠?
두 가지 자료구조를 사용하는 예는 아래와 같습니다.
Stack: JVM 스택 메모리
-> JVM 스택 메모리에 저장된 변수는 나중에 저장된 변수부터 제거
Queue: 스레드풀
-> 작업 큐가 먼저 들어온 작업부터 처리
그리고 스택과 큐의 장점을 모두 합친 것이 바로 덱(Deque)입니다.
Double Enabled Queue의 약자이며,
다시말해, 삽입과 삭제가 양쪽 끝에서 모두 발생할 수 있는 자료구조입니다.
(단, 아래와 같이 1쪽에 1가지 기능이 반드시 제한되어야 합니다.)
Deque: 우선순위를 조절하는 작업
-> Stack: 나중의 자료에 우선순위를 둘 수 X
-> Queue: 처음의 자료에 우선순위를 둘 수 X
'Dev- > 자료구조, 알고리즘' 카테고리의 다른 글
2581번) 소수 (0) | 2018.09.27 |
---|---|
재귀함수의 쓰임은 무한루프만?? (0) | 2018.09.13 |
재귀함수가 무한루프에 빠지지 않기 위한 조건 2가지 (0) | 2018.09.10 |
시간복잡도란? (0) | 2018.09.10 |
정규화란? (0) | 2018.08.25 |