[ 자료구조 ] Stack

#1 스택


스택은 데이터를 쌓는 형태가장 마지막에 들어온 데이터가 가장 먼저 나가는 LIFO(Last in First Out) 자료구조다.

#2 연산

push

스택에 데이터를 삽입하는 연산으로 스택의 가장 위에 데이터를 저장한다.

pop

스택에 데이터를 삭제하는 연산으로 가장 마지막에 저장한 데이터를 제거한다.

peek

스택의 가장 위 데이터를 확인한다.

#3 스택의 사용

파이썬

# 빈 스택 초기화
stack = []
print("stack:", stack)

# 스택에 원소 추가
stack = [1, 2, 3]
stack.append(4)
print("stack:", stack)

# 스택 원소 제거
stack = [1, 2, 3]
stack.pop()
print("stack:", stack)

# 스택 원소 찾기
stack = [1, 2, 3]
top = stack[-1]
print("stack:", stack, "top:", top)

C++

#include <iostream>
#include <stack>

using namespace std;

int main() {
    // 스택 생성
    stack<int> stack;

    // 원소 추가
    stack.push(1);
    stack.push(2);
    stack.push(3);

    // 마지막 원소 조회 및 원소 제거
    cout << "stack: ";
    while (!stack.empty()) {
        cout << stack.top() << " ";
        stack.pop();
    }
    cout << "bottom" << endl;

    return 0;
}

Java

import java.util.Stack;

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

        // 아이템 추가
        stack.push(1);
        stack.push(2);
        stack.push(3);

        System.out.println(stack);

        // 아이템 제거
        stack.pop();
        System.out.println(stack);

        // 가장 위의 아이템 확인
        System.out.println(stack.peek());
    }
}