Stack, Queue 설명과 차이

박상록(Sangrok Park)·2020년 10월 22일
0

Stack

쌓여있는 접시와 같다. 먼저들어온 자료가 나중에 나간다. FILO(First In Last Out.)

Stack은 접근성에 제한이 있는 자료구조. 오직 맨 위에 추가(push)할 수 있고, 맨 위에 것만 나갈(pop) 수 있다.

Queue

놀이공원에 줄 서있는 사람들과 같다. 먼저 온 사람이 먼저 나간다. FIFO(First In First Out.)
두가지 동작만 허용된 자료구조. Enqueue(들어옴)과 Dequeue(나감).

Enqueue는 queue의 가장 뒷 부분에 item을 추가하고,
Dequeue는 가장 앞부분의 item이 나가게 된다.

Stack과 Queue의 가장 큰 차이점은 item을 삭제할 때 있다.

아이템을 삭제할 때, Stack은 가장 마지막에 추가되 있던 item을 삭제하고, Queue는 가장 처음으로 들어와 있던 item을 삭제한다.

Stack과 Queue 모두 Peek을 사용할 수 있다. Peek operation은 자료구조의 변화를 주지않고, Pop이나, Dequeue를 할 때 리턴되는 아이템을 리턴 할 수 있다.

자료구조의 중요성

컴퓨터 프로그램 = 자료구조 + 알고리즘

대부분의 프로그램에서 자료(data)를 처리하고 있고, 이들 자료는 자료구조(data structure)를 통해서 저장됨. 또 주어진 자료들로 문제를 처리하는 방식을 알고리즘이라고 한다.

컴퓨터는

(1) 자료구조 결정 => (2) 그 자료구조에 사용할 알고리즘 결정됨.

따라서 컴퓨터가 복잡한 자료들을 빠르게 저장, 검색, 분석, 전송, 갱신하기 위해서는 자료구조가 효율적으로 조직화 되있어야 함.

이것이 바로 자료구조의 중요성.

출처 : 코드스테이츠 UrClass,
Everything Computer Science (https://everythingcomputerscience.com/discrete_mathematics/Stacks_and_Queues.html),
도서 : C언어로 쉽게 풀어 쓴 자료구조(천인국, 공용해, 하상호)

profile
한 줌의 소금과 같이 되고 싶은 개발자

0개의 댓글