본문 바로가기
CS/자료구조&알고리즘

[자료구조] 스택(Stack)이란?

by Chaewon Park 2024. 5. 11.
후입선출(LIFO : Last-In First-Out)

 

가장 마지막(최근)에 넣은 데이터를 가장 먼저 빼는 형식으로,  데이터를 쌓아올린 형태의 자료구조

 

 

특징

 

1. 단방향 입출력 구조
  : 데이터가 들어오고 나가는 방향이 같음

 

2. 깊이 우선 탐색(DFS)에 사용

 

 

주요 메서드
  • push()
    스택에 새로운 원소를 삽입

  • pop()
    top에 위치한 데이터를 읽고 top 데이터를 삭제
  • peek()
    top에 있는 데이터를 리턴

  • isEmpty()
    스택이 비어있는지를 boolean 형태로 리턴하는 메서드

 

Java 스택 구현
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        // Integer형 스택 선언
        Stack<Integer> stack = new Stack<>();

        // bottom 1 2 3 top
        stack.push(1);
        stack.push(2);
        stack.push(3);

        // [1, 2, 3]
        System.out.println(stack);

        // top 데이터인 3 삭제
        System.out.println(stack.pop());
        
        // [1, 2]
        System.out.println(stack);

        // 모두 삭제
        stack.clear();
    }
}

 

 

배열(Array) vs 연결 리스트(Linked List)

 

다음에 알아보자 ,,

'CS > 자료구조&알고리즘' 카테고리의 다른 글

[자료구조] 큐(Queue)란?  (0) 2024.05.15