본문 바로가기
Data Structure/Stack,Queue

[Stack/Queue] 자료구조 스택, 큐

by @__100.s 2021. 8. 18.
반응형

스택(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을 삭제한다.

참고

반응형