본문 바로가기
알고리즘

바킹독 알고리즘 0x05강 스택 요약본

by 치우치지않는 2023. 1. 30.

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 발생
}

 

댓글