자료구조&알고리즘
[자료구조] 스택 (Stack)
순늘봄
2023. 10. 23. 23:39
스택 (Stack)
스택은 "쌓다" 라는 의미를 가지고 있으며, 그 의미에 맞게 데이터를 차곡차곡 쌓아올린 형태의 자료구조이다. 아래와 같이 데이터가 순서대로 쌓이게 되고 가장 마지막에 삽입된 데이터가 가장 먼저 삭제되는 구조를 가지고 있다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조이며 데이터를 삽입할 때는 push 연산을 사용하며 데이터를 꺼낼 때는 pop 연산을 사용한다. 이 때 꺼내지는 데이터는 가장 최근에 삽입한 자료부터 나오게 된다. 이는 LIFO (Last In First Out) 구조이다.
스택 연산:
· s.top(): 스택의 가장 위 데이터를 반환
· s.pop(): 스택의 가장 위 데이터를 삭제
· s.push(): 데이터 삽입
· s.empty(): 스택이 비었다면 1 반환, 그렇지 않다면 0 반환
예시 코드:
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
int main() {
stack <int> s;
s.push(7); //삽입
s.push(5);
s.push(4);
s.pop();
s.push(6);
s.pop();
while (!s.empty()) {
cout << s.top() << " ";
s.pop();
}
return 0;
}