[그림으로 배우는 자료구조] 스택이란?

[그림으로 배우는 자료구조] 스택이란?

 

스택에 대해서 배우기 전에 먼저 책들이 담긴 상자를 떠올려 봅시다.

 

 

자 이제 긴 박스에 담긴 책을 비우고 다시 새책을 3권 넣어보겠습니다. A, B, C 책 3권이 긴 박스에 들어갔습니다.

 

 

이제 긴 박스에서 책을 꺼내 보겠습니다. 제목이 A라는 책을 꺼내서 보고 싶은데 위에 B와 C라는 책이 있어서 A 책을 바로 꺼낼 수 가 없습니다.

 

 

그럼 어떻게 해야 할까요? C책을 먼저 꺼내고, B책을 꺼낸 후, A 책을 꺼내면 되겠죠?

 

 

스택도 긴 박스에 책을 하나씩 넣고 빼는것과 동일한 구조입니다. 스택에 데이터를 하나씩 순서대로 넣을 수 있고, 데이터를 꺼낼 때는 제일 마지막에 넣은 데이터부터 꺼낼 수 있습니다. 이러한 스택의 구조적인 특징을 LIFO(Last In Frist Out)라고 합니다.

 

 

프로그래밍 언어마다 다르겠지만 스택은 대표적인 3가지 연산이 있습니다. 바로 peek(), push(), pop() 입니다.

 

 

스택에서 가장 위에 있는 (마지막에 삽입된) 데이터를 반환하는 연산을 peek이라고 합니다.

 

 

스택의 제일 위쪽 부분에 데이터를 삽입하는 연산을 push 라고 합니다.

 

 

스택에서 제일 마지막에 삽입된 데이터를 삭제 후 해당 데이터를 반환하는 연산을 pop이라고 합니다.

 

 

스택 자료구조는 대부분 웹 브라우저 방문기록(뒤로가기), 실행 취소(undo) 등에 사용됩니다.

 

 

 

 

참고

코딩퀴즈 - ios

https://apps.apple.com/kr/app/%EC%BD%94%EB%94%A9%ED%80%B4%EC%A6%88/id1625309702

 

코딩퀴즈 - aos

https://play.google.com/store/apps/details?id=com.codingquiz.myapplication