[자료 구조] 스택(Stack)

Eunjin·2023년 4월 21일
0

스택이란?

데이터를 일시적으로 저장하고 관리하기 위한 추상 자료형 중 하나.

선형 구조를 가지며 Last In First Out (LIFO)의 방식으로 데이터를 삽입/삭제 하는 연산을 수행함

데이터를 차곡차곡 쌓아 올린 형태의 자료구조


스택 연산

: push, pop, top, empty의 네 가지 연산을 지원

  • push: 스택의 가장 위쪽(top)에 데이터를 삽입
  • pop: 스택의 가장 위쪽에서 데이터를 삭제하고 반환
  • top: 스택의 가장 위쪽 데이터를 반환합니다. 이 연산은 스택에서 데이터를 삭제하지 않음
  • empty: 스택이 비어있는지 확인

스택의 장.단점

  • 배열을 이용한 구현은 인덱스를 이용하여 접근이 가능하기 때문에 구현이 쉽지만, 스택의 크기를 정적으로 결정해야 하고 스택이 가득 차게 되면 새로운 데이터를 삽입할 수 없다는 단점이 있음
  • 연결 리스트를 이용한 구현은 동적으로 스택의 크기를 조절할 수 있으며, 메모리를 효율적으로 사용할 수 있다는 장점이 있음

스택 코드

스택 연산은 Stack 클래스에서 모두 지원되므로, 스택을 구현할 때 Stack 클래스를 사용하는 것이 간편함

import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>(); // 정수형 스택 생성
        
        // push 연산으로 스택에 데이터 추가
        stack.push(1);
        stack.push(2);
        stack.push(3);
        
        // pop 연산으로 스택에서 데이터 삭제 및 반환
        int top = stack.pop(); // top = 3
        
        // peek 연산으로 스택의 가장 위쪽 데이터 반환
        int peek = stack.peek(); // peek = 2
        
        // empty 연산으로 스택이 비어있는지 확인
        boolean empty = stack.empty(); // empty = false
    }
}

참고
https://jud00.tistory.com/entry/자료구조-스택Stack과-큐Queue에-대해서-알아보자
https://roi-data.com/entry/자료구조-4-스택Stack이란-연산-구현방법

0개의 댓글

관련 채용 정보