#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());
}
}