FIFO(First In Last Out) 규칙을 가지는 리스트로, 먼저 들어간 데이터가 나중에 나옵니다. 어떤 자료구조이든지 FIFO 규칙만 지킨다면 스택에 해당합니다.
예를 들어, 책을 바닥에 놓고 위로 쌓았을 때 가장 최근에 놓은 책부터 꺼내야 하고, 맨 처음에 놓은 책은 맨 마지막에 꺼낼 수 있는 것과 같습니다.
스택 자료구조의 예로는, undo(되돌리기) 작업이 있습니다. 컴퓨터가 그동안의 작업 내역을 스택에 저장했다가 차례로 꺼내어 작업을 되돌립니다.
스택 자료구조를 구현할 때는 다음과 같은 기능이 필요합니다.
push(data)
: 데이터를 맨 뒤에 삽입합니다.pop()
: 데이터의 맨 뒤부터 삭제합니다.peek()
: 데이터 참조<aside> 🔗
스택 기능 구현과 관련된 내용은 Stack에 관한 게시글을 참고해주세요.
</aside>
JavaScript에서는 배열로, push(data)
, pop()
메서드를 이용해 구현할 수 있습니다.
코딩테스트 문제 중 괄호(()
)문제에서는 스택이 자주 사용됩니다.