쌓여있는 접시와 같다. 먼저들어온 자료가 나중에 나간다. FILO(First In Last Out.)
Stack은 접근성에 제한이 있는 자료구조. 오직 맨 위에 추가(push)할 수 있고, 맨 위에 것만 나갈(pop) 수 있다.
놀이공원에 줄 서있는 사람들과 같다. 먼저 온 사람이 먼저 나간다. FIFO(First In First Out.)
두가지 동작만 허용된 자료구조. Enqueue(들어옴)과 Dequeue(나감).
Enqueue는 queue의 가장 뒷 부분에 item을 추가하고,
Dequeue는 가장 앞부분의 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언어로 쉽게 풀어 쓴 자료구조(천인국, 공용해, 하상호)