참고 내용
https://blog.encrypted.gg/933?category=773649
정의와 성질
스택(Stack) : 한쪽 끝에서만 원소를 넣거나 뺄 수 있는 자료구조
# 실전 활용 : 원소 추가/제거/맨 상단의 원소 확인 기능을 활용하는 문제에서 사용
(맨 상단이 아닌 원소들 확인/변경하는 기능 제공하지 않음)
1. 원소 추가 / 제거 / 맨 앞 원소 확인 O(1)
2. 맨 앞이 아닌 나머지 원소들 확인/변경 원칙적으로 불가능
구현
pos : 비어있는 상단을 가리키고 있음
1) push함수
void push(int x){
dat[pos++] = x;
}
2) pop 함수
void pop(){
pos--;
}
3) top 함수
int top(){
return dat[pos-1];
}
STL예제
선언, push, pop, top, empty, size 사용법 확인
#include <bits/stdc++.h>
using namespace std;
int main(void) {
stack<int> S;
S.push(10);
S.push(20);
S.push(30);
cout << S.size() << '\n';
if(S.empty()) cout << "S is empty\n";
else cout << "S is not empty\n";
S.pop();
cout << S.top() << '\n';
S.pop();
cout << S.top() << '\n';
S.pop();
if(S.empty()) cout << "S i empty\n";
//cout << S.top() << '\n';
}
'Problem Solving > 이론' 카테고리의 다른 글
C++:: 덱 (0) | 2023.01.04 |
---|---|
C++:: 큐(Queue) (0) | 2023.01.03 |
C++:: 배열(Array) (0) | 2022.09.09 |
Python:: 문자열 탐색 - Rabin-Karp 알고리즘 (0) | 2022.05.31 |
Python :: 최단 경로 - A* 알고리즘 (0) | 2022.05.14 |