1. 자료구조에서의 스택
한쪽 끝에서만 원소를 넣거나 뺄 수 있는 자료구조! (프링글스 통)
스택, 큐, 덱 모두 특정 위치에서만 원소를 넣거나 뺄 수 있으므로 Restricted Structure 라고 부름.
중요한 것은, 최상단이 아닌 원소들의 확인이나 변경이 원칙적으로는 불가하다는 것. 그래서 STL 에서도 제공하지 않음.
2. STL 에서 구현한 stack
주의할 점은, 빈 스택에서 pop 이나 top 을 호출하면 런타임 에러를 발생시킨다는 점!
#include <bits/stdc++.h>
using namespace std;
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 발생
}
'알고리즘' 카테고리의 다른 글
바킹독 알고리즘 0x07강 덱 요약본 (1) | 2023.01.31 |
---|---|
바킹독 알고리즘 0x06강 큐 요약본 (0) | 2023.01.31 |
바킹독 알고리즘 0x04강 연결 리스트 요약본 (0) | 2023.01.30 |
바킹독 알고리즘 0x03강 배열 요약본 (0) | 2023.01.29 |
바킹독 알고리즘 0x02강 기초 코드 작성 요령 2 요약본 (1) | 2023.01.27 |
댓글