자료구조 스택과 큐 1분만에 이해하기
자료구조 스택과 큐 1분만에 이해하기 — #자료구조스택 #자료구조큐 AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다 자료구...
#자료구조스택 #자료구조큐
AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다
자료구조 스택
이전글을 통해 자료구조 배열과 리스트에 대한 개념을 짚고 넘어갔습니다. 이번에는 중요한 자료구조 스택과 큐에 대해 알아보도록 하겠습니다.
스택과 큐는 비슷하면서도 다른 자료구조입니다. 처음 공부하실때는 감이 잘 안잡히실 수 있습니다. 우선 둘은 배열과 리스트로 구현 가능한 자료구조라는 점과 자료를 어떻게 관리할 것인지에 대한 방법론이라는 관점에서 접근하는게 좋습니다. 그 후 두 자료구조가 어떻게 다른지 차이점을 이해하시는게 좋습니다.
스택
프링글스
프링글스 통을 배열, 과자를 요소라고 표현해보면 스택을 설명할 수 있습니다. 프링글스가 과자를 어떻게 담고 있는지 생각해봅시다. 가장 처음에 담은 과자는 맨 아래로, 가장 마지막의 과자는 맨 위로 배치가 됩니다. 그리고 나서 맨 위의 과자가 먼저 나가는 후입 선출 방식으로 과자를 먹습니다.
스택은 이와 마찬가지로 맨 앞부터 차례대로 요소를 배치하고 맨뒤의 요소를 먼저 제거하는 방식의 자료구조입니다.
해당 자료구조는 ctrl + z의 되돌리기(UNDO) 기능, 웹페이지의 뒤로가기 기능 등에 사용될 수 있습니다.
큐
식당의 줄
이번에는 대학식당가를 생각해봅시다. 학생들이 일렬로 줄을 서서 차례대로 한명씩 식권을 발급받습니다. 이때 당연하게도 맨 앞의 학생이 가장 먼저 식권을 발급받고 맨 뒤의 학생은 맨 마지막에 식권을 발급받습니다. 그러다 학생이 추가로 오면 맨 뒤부터 차례대로 줄을 섭니다. 식당의 줄은 선입 선출 구조를 보입니다.
큐도 식당의 줄처럼 선입선출 방식의 자료구조입니다. 맨 앞의 자료가 가장 먼저 나오며, 새로운 자료가 추가될때는 맨 뒤부터 자료가 추가됩니다.
큐를 이용하여 식당처럼 예약 시스템을 만들 수 있습니다. 가장 먼저 예약한 사람에게 해당 서비스를 우선적으로 제공하고 이후에는 순차적으로 서비스를 제공하는 프로그램을 만들 수 있습니다.

