최대 1 분 소요

설명

  • 스택(Stack)

  • 설명 : 스택은 후입선출(LIFO, Last-In-First-Out) 원칙에 따라 데이터를 저장하고 접근하는 자료구조입니다. 새로운 요소는 항상 스택의 맨 위에 추가되고, 제거할 때도 맨 위의 요소부터 제거됩니다.

  • 구현 방법 : 일반적으로 배열 또는 연결 리스트로 구현됩니다. 배열로 구현할 경우에는 top 인덱스를 가리키는 포인터를 유지하며, 연결 리스트로 구현할 경우에는 각 노드가 데이터와 다음 노드를 가리키는 포인터를 가집니다.

  • 사용 사례 : 함수 호출의 임시 데이터 저장, 역순 문자열 처리, 웹 브라우저의 뒤로가기 기능 등에 사용됩니다.

  • 장단점 :
    • 장점: 간단한 구조, 구현이 쉽고 빠른 데이터 접근
    • 단점: 크기가 제한적이며, 중간 요소에 접근하기 어려움

스택 시뮬레이션

스택 시뮬레이션

스택 시뮬레이션

코드로 알아보기

  • Java

    public class MyStack {
      private int[] array;
      private int top;
    
      public MyStack(int capacity) {
          array = new int[capacity];
          top = -1;
      }
    
      public void push(int element) {
          if (top == array.length - 1)
              throw new StackOverflowError();
          array[++top] = element;
      }
    
      public int pop() {
          if (isEmpty())
              throw new EmptyStackException();
          return array[top--];
      }
    
      public int peek() {
          if (isEmpty())
              throw new EmptyStackException();
          return array[top];
      }
    
      public boolean isEmpty() {
          return top == -1;
      }
    } 
    

댓글남기기