[알고리즘, 데이터구조 with Nico] 자료구조

·2023년 12월 29일
0

알고리즘

목록 보기
6/6
post-thumbnail

스택(Stack)과 큐(Queue)에 대해 알아볼 것이다!
(스택과 큐도 결국 배열 위에 어떤 규칙을 설정한 모습이다.)
그러나 스택과 큐는 실제로 프로그래밍 언어들에서 존재하지 않는다. > 또한 스택과 큐는 자료구조가 스택 또는 큐로 구분되기 위한 규칙이라고 할 수 있다.
이러한 것을 '추상적 자료구조(ADT)' 라고 한다.

추상적 자료구조(ADT)

추상적 자료구조는 자료구조의 방법이 코드로 정의된 것이 아니라, 그 구조의 행동 양식만 정의된 것을 뜻한다.
즉 규칙만 이해한다면 스택과 큐라는 자료구조를 직접 만들 수 있다.

스택(Stack)


스택은 팬케이크 더미와도 같다.
새로운 팬케이크를 올리려면 위에 올리고, 팬케이크 더미를 줄이고 싶을 땐 맨 위에 있는 팬케이크부터 먹기 시작한다.

즉, 스택은 배열이 수직으로 쌓여있는 형태이다.
이 배열에서는 요소를 추가하거나 삭제할 때 맨 위에서부터 차례로 할 수 있다. 이러한 방식을 LIFO(Last In First Out)라고 한다.

큐(Queue)

큐는 줄을 서는 것과 같다.
버스를 기다리고 있을 때 줄 맨 앞에 서있는 사람이 가장 먼저 버스를 탄다. 줄 가장 뒤에서 기다린 사람은 버스도 가장 마지막에 타게 된다.
즉, 큐는 배열인데 가장 먼저 큐에 들어온 요소가 가장 먼저 큐에서 나가는 요소가 된다. 이러한 방식을 FIFO(First In First Out)라고 한다.

스택, 큐 활용예시

브라우저에서 뒤로가기 기능은 '스택' 자료구조를 쓰는 것이다.
뒤로가기를 누른다는 것은 웹페이지 히스토리 스택의 맨 위에서 한 페이지를 읽어오는 것이기 때문이다.
또한 문서 작성 중 Ctrl+Z를 통해 되돌리기 기능을 수행하는 것 역시 스택 자료구조를 활용하는 것이다.

이메일을 전송하거나 푸시 알림 기능, 혹은 쇼핑몰에서 주문을 처리하는 방식(선착순)은 '큐' 자료구조를 쓰는 것이다.
큐는 일상생활에 다양한 곳에서 쓰이는 자료구조라고 할 수 있다.

profile
개발을 개발새발 열심히➰🐶

0개의 댓글