스택, 큐, 덱 ➡️ Restricted Structure: 특정 위치에서만 원소를 넣거나 뺄 수 있음
const int MX = 1000005;
int dat[MX];
int pos = 0; // 스택 내의 원소의 수를 의미하기도 함
void push(int x) {
dat[pos++] = x;
}
void pop() {
pos--;
// 나중에 push가 발생하면 어차피 덮어씌워질 것이므로 추가적인 연산 불필요
}
int top() {
return dat[pos-1];
}
이왕이면 STL을 사용하는 것이 좋음
int main(void) {
stack<int> S;
S.push(10); // 10
S.push(20); // 10 20
S.push(30); // 10 20 30
cout << S.size() << '\n'; // 3
if(S.empty()) cout << "S is empty\n";
else cout << "S is not empty\n"; // S is not empty
S.pop(); // 10 20
cout << S.top() << '\n'; // 20
S.pop(); // 10
cout << S.top() << '\n'; // 10
S.pop(); // empty
if(S.empty()) cout << "S is empty\n"; // S is empty
cout << S.top() << '\n'; // runtime error 발생
}