Stack(스택) & Queue(큐)

WestZero·2021년 3월 17일
0
post-thumbnail

스택(Stack)이란?

스택(Stack)의 사전적 의미 : (책 등을)(깔끔하게 정돈하여)쌓다, 쌓아 올리다.

자료구조 스택은 물건을 쌓아 올리는 것처럼 쌓아 올린다는 것을 말함.
스택은 후입선출(LIFO(Last In First Out))구조로, 마지막에 삽입된 것이 첫 번째로 출력되는 형식이다. 입구와 출구가 같은 프링글스 통을 생각하면 편하다.
보통 삽입 연산은 Push, 삭제 연산은 Pop이라고 한다.
스택이 차 있는 상태에 원소를 더 넣으려고 하면 stack overflow가, 비어 있는 스택에서 원소를 꺼내려고 하면 stack underflow가 발생한다.

스택의 특징

  • 같은 구조/크기로 이루어진 자료를 같은 방향으로만 쌓을 수 있음.
  • top으로 정한 곳을 통해야만 접근이 가능함.
  • 새 자료는 top위에 쌓이고, 삭제도 top부터 이루어짐.

큐(Queue)란?

큐(Queue)의 사전적 의미 : 열


자료구조 큐는 선입선출(FIFO(First In First Out)) 구조로, 첫 번째로 삽입된 것이 첫 번째로 출력되는 형식이다. 입구와 출구가 각각 하나씩이고 유턴이 불가능한 터널이라고 생각하면 편하다.
보통 삽입 연산은 enQueue, 삭제 연산은 deQueue라고 한다.

큐의 특징

  • 스택과 달리 한쪽에서는 삽입 작업, 한쪽에서는 삭제 작업이 일어남.
  • 보통 삭제 연산이 수행되는 곳을 front, 삽입 연산이 수행되는 곳을 rear라고 함.
  • front는 출구, rear은 입구

스택의 활용법

스택은 후입선출 구조로, iOS로 예를 들자면 이전 화면으로 돌아가기 등의 화면 전환에서 쓰일 수 있다.

큐의 활용법

큐는 선입선출 구조로, 순차적으로 일을 해결해야 하는 은행 업무 등에서 쓰일 수 있다.


스택 코드 구현 (C언어)


큐 코드 구현 (C언어)


0개의 댓글