본문 바로가기

Dev-/자료구조, 알고리즘

스택(Stack), 큐(Queue), 그리고 덱(Deque)

자료구조 중에는 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