스택
스택은 LIFO(Last In First Out)원리로 동작하는 선형적인 자료구조
데이터가 들어오고 나가는 입구가 하나뿐이므로 입구로 들어간 데이터가 스택에 차곡차곡 쌓여있다가 들어간 반대순서로 나온다.
스택을 c로 구현하는 방법도 있지만 C++에서 제공하는STL을 통해 쉽게 사용 할 수 있다.
먼저
-
st.push(x) : 스택에 데이터 x를 입력한다.
-
st.pop() : 스택의 데이터를 삭제한다.
-
st.top() : 스택의 가장 꼭대기의 데이터를 반환한다.
-
st.empty() : 스택이 비어있는지 판단한다.
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
#include<stack> //stack 라이브러리 불러옴
using namespace std;
int main(){
stack<int> st; //스택 선언
st.push(10); //스택에 삽입
st.push(20);
st.push(100);
while (1){
if (st.empty()){ // 스택이 비었는지 확인
cout << "stack에 데이터 없음" << endl;
break;
}
cout << st.top() << endl; //데이터 반환
st.pop(); //데이터 삭제
}
return 0;