Stack / Queue

yezo cha·2021년 6월 17일
0
post-thumbnail

Data Structure

자료구조란 무엇일까..?
여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것이라고 할 수 있다.
데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있다.
필요에 따라 데이터의 특징을 잘 파악(분석)하여 정리하고, 활용해야 한다.

데이터를 정해진 규칙없이 저장하거나, 하나의 구조로만 정리하고 활용하는 것보다 데이터를 체계적으로 정리하여 저장해두는 게, 데이터를 활용하는 데 있어 훨씬 유리하다.

무수한 상황에서 데이터를 효율적으로 다룰 수 있는 방법을 모두 모아, 자료구조라는 이름을 붙였고, 이 많은 방법 중에서 가장 많이 쓰이고 알고리즘 테스트(코딩 테스트)에 자주 등장하는 네 가지를 알아보자.

Stack, Queue, Tree, Graph

Stack 스택

Stack쌓다, 쌓이다, 포개지다 와 같은 뜻을 가지고 있다.
마치 접시를 쌓아 놓은 형태와 비슷한 이 자료구조는 직역 그대로, 데이터(data)를 순서대로 쌓는 자료구조다.
동전쌓기처럼 가장 나중에 쌓은 동전을 가장 먼저 꺼낼 수 있는 구조를 생각하자.
쌓는 과정을 push, 위에서부터 하나씩 꺼내는 과정을 pop이라고 한다.

Queue 큐

Queue줄을 서서 기다리다, 대기 행렬 이라는 뜻을 가지고 있다.
어떤 구조를 가지고 있을지 짐작해보자.

Queue는 Stack과 반대되는 개념으로, 먼저 들어간 데이터(data)가 먼저 나오는 FIFO(First In First Out) 혹은 LILO(Last In Last Out) 을 특징으로 가지고 있다.

톨게이트를 생각하면 이해하기 쉽다. 가장 먼저 진입한 자동차가 가장 먼저 톨게이트를 통과한다. 다시 말해, 가장 나중에 진입한 자동차는 먼저 도착한 자동차가 모두 빠져나가기 전까지는 톨게이트를 빠져나갈 수 없다는 말이다.
이 때 자동차가 들어오는 과정을 enqueue, 들어온 순서대로 빠져나가는 과정을 dequeue라고 한다.

자료구조 Queue데이터(data)가 입력된 순서대로 처리할 때 주로 사용한다.

profile
(ง •̀_•́)ง

0개의 댓글