본문 바로가기

Data Structure

[Java] 스택(Stack)

스택(Stack)의 개념

 - 큐와 다르게 나중에 들어온 데이터가 먼저 나가는 LIFO(Last In First Out)로 저장하는 자료 구조이다.

 

스택(Stack)의 기본 메서드 4가지

  • push(item) : item 하나를 스택의 가장 윗부분에 추가한다.
  • pop() : 스택에서 가장 위에 있는 항목을 제거한다.
  • peek() : 스택의 가장 위에 있는 항목을 반환한다.
  • isEmpty() : 스택이 비어있을 경우 true를 반환한다.

스택(Stack)의 활용 사례

  • 재귀 알고리즘
  • 웹 브라우저 방문 기록 (뒤로 가기)
  • 실행 취소
  • 역순 문자열 만들기

 

스택(Stack)의 구현

import java.util.NoSuchElementException;

public class Stack<T>
{
    class Node<T> {
        private T data;
        private Node<T> next;

        public Node(T data) {
            this.data = data;
        }
    }
    private Node<T> top;

    private void push(T item)
    {
        Node<T> t = new Node<>(item);
        t.next = top;
        top = t;
    }

    private T pop()
    {
        if(top == null)
        {
            throw new NoSuchElementException();
        }
        T item = top.data;
        top = top.next;
        return item;
    }
    private T peek()
    {
        if(top == null)
        {
            throw new NoSuchElementException();
        }
        return top.data;
    }
    private boolean isEmpty()
    {
        return top == null ? true : false;
    }
}

'Data Structure' 카테고리의 다른 글

[Java] 큐(Queue)  (0) 2021.06.16