반응형
스택(Stack)이란?
- 스택(stack)이란 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다.
스택(Stack)의 특징
- LIFO (Last In First Out) 구조 : 한쪽 끝에서만 자료를 넣고 뺄 수 있는 구조, 가장 마지막에 들어온 자료가 가장 먼저 나간다.
- 스택은 오직 맨 위
top
을 통해서만 자료를 삽입 push 할 수 있고, 자료를 삭제 pop 할 수 있다. - 자료가 없을 때 pop하는 오류를 stack underflow, 스택의 크기 이상의 자료를 push 하려고 할 때의 오류를 stack overflow라고 함.
큐(Queue)란?
- Queue의 사전적 의미는 1. (무엇을 기다리는 사람, 자동차 등의) 줄 , 혹은 줄을 서서 기다리는 것을 의미한다.
- 따라서 일상생활에서 놀이동산에서 줄을 서서 기다리는 것, 은행에서 먼저 온 사람의 업무를 창구에서 처리하는 것과 같이 선입선출(FIFO, First in first out) 방식의 자료구조를 말한다.
큐(Queue)의 특징
- FIFO(First-In-First-Out) 구조 : Enqueue(들어옴)과 Dequeue(나감) 두가지 동작만 허용된 자료구조, 가장 먼저 들어온 자료가 가장 먼저 나온다.
- Queue의 가장 첫 원소는 front / 가장 끝 원소는 back이라고 한다.
- Queue는 자료가 들어올 때는 back으로, 나올 때는 front로 나간다.
Enqueue
는 Queue의 뒷부분인back
에서 item을 추가 push하는 연산이다.Dequeue
는 Queue의 앞부분인front
에서 item을 삭제 pop 하는 연산이다.
Stack과 Queue의 가장 큰 차이점은 item을 삭제할 때 있다.
- 아이템을 삭제할 때, Stack은 가장 마지막에 추가돼있던 item을 삭제하고, Queue는 가장 처음으로 들어와 있던 item을 삭제한다.
참고
반응형