본문 바로가기

카테고리 없음

TechStudy -05.Stack Queue

Stack이란?

실제 영어 사전에서 찾아보면 '건초더미'라는 의미를 지닙니다. 데이터를 일시적으로 저장하기 위한 자료구조로, 가장 나중에 넣은 데이터를 가장 먼저 꺼냅니다. 데이터의 입력과 출력 순서는 후입선출(LIFO, Last In First Out)입니다. Stack에 데이터를 넣는 작업을 push라 하고, Stack에서 데이터를 꺼내는 작업을 pop이라고 합니다. 데이블에 겹겹이 쌓은 접시처럼 데이터를 넣는 작업도 꺼내는 작업도 위쪽부터 수행합니다. 이렇게 푸시와 팝을 하는 위치를 top이라 하고, 가장 아랫부분을 bottom이라고 합니다. 



Queue란?

실제 영어 사전에서 찾아보면 '줄'이라는 의미를 지닙니다. 스택과 마찬가지로 데이터를 일시적으로 쌓아 두기 위한 자료구조입니다. 선입선출(FIFO, First In First Out) 구조로 되어있습니다. 생활에서 볼 수 있는 큐의 예는 은행 창구에서 차례를 기다리는 대기열이나 마트에서 계산을 기다리는 대기열을 들 수 있습니다. 그래서 '대기행렬'이라고 불리기도 합니다. 큐에 데이터를 넣는 작업을 enqueue라고 하고, 꺼내는 작업을 dequeue라고 합니다. 또 데이터를 꺼내는 쪽을 front라고 하고, 데이터를 넣는 쪽을 rear라고 합니다. 

Stack 과 Queue의 차이점

* 입력과 출력 순서가 다르다.(queue는 입력한 순서대로 출력이 되는 반면에 stack은 역순으로 출력된다)