Context
스택이란, 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조로 접근 방법은 항상 리스트의 끝에서만 일어난다하여 끝 먼저내기 리스트(Pushdown list)라고도 불립니다.
스택을 네모난 레고 블록이라 비유해 기둥 모양으로 쌓는다고 가정했을 때 밑에서 부터 위로 차례차례 쌓아올린 후 블록을 분리할 때는 쌓아올린 제일 상단에 있는 블록들을 한번에 무너뜨리지 않아야하기 때문에 먼저 하나 하나 제거 할 수 있습니다.
peek()
: 스택의 가장 위에 있는 값을 반환pop()
: 스택에서 가장 위에 있는 값을 제거push()
: 스택의 가장 위에 있는 데이터 위에 새로 추가할 데이터를 생성isEmpty()
: 스택이 비어있는지의 여부에 따라 boolean
을 반환Pesudo Code
스택() {
그릇() {
비어있는배열 = []
}
푸쉬(알파벳){
만약 배열에 들어갈 수 있는 알파벳 수가 6개라면
비어있는배열.push(알파벳);
}
팝() {
비어있는배열.pop()한 후 반환한다.;
}
픽() {
비어있는배열[마지막인덱스]를 반환한다.;
}
빈값인가() {
비어있는지 확인하여 boolean 값을 반환한다.;
}
}
<aside>
⚠️ 만약 스택이 비어있다면 top()
, pop()
연산이 불가합니다.
</aside>
<aside> ℹ️ 사용 사례로는 대표적으로 웹 브라우저 방문기록 뒤로가기, 실행 취소(undo) 등이 있습니다.
</aside>