Context



Stack


스택이란, 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조로 접근 방법은 항상 리스트의 끝에서만 일어난다하여 끝 먼저내기 리스트(Pushdown list)라고도 불립니다.

스택을 네모난 레고 블록이라 비유해 기둥 모양으로 쌓는다고 가정했을 때 밑에서 부터 위로 차례차례 쌓아올린 후 블록을 분리할 때는 쌓아올린 제일 상단에 있는 블록들을 한번에 무너뜨리지 않아야하기 때문에 먼저 하나 하나 제거 할 수 있습니다.

Untitled

스택 연산

Pesudo Code

스택() {
  그릇() {
    비어있는배열 = []
  }
  푸쉬(알파벳){
    만약 배열에 들어갈 수 있는 알파벳 수가 6개라면
    비어있는배열.push(알파벳);
  }
  팝() {
    비어있는배열.pop()한 후 반환한다.;
  }
  픽() {
    비어있는배열[마지막인덱스]를 반환한다.;
  }
  빈값인가() {
    비어있는지 확인하여 boolean 값을 반환한다.;
  }
}

<aside> ⚠️ 만약 스택이 비어있다면 top(), pop() 연산이 불가합니다.

</aside>

<aside> ℹ️ 사용 사례로는 대표적으로 웹 브라우저 방문기록 뒤로가기, 실행 취소(undo) 등이 있습니다.

</aside>

Queue