주의사항
- 스택 내부 자료구조
스택에 내부적으로 사용되는 자료구조는
vector, list, deque 등 직접 지정해 줄 수 있도록 구현되어 있다
기본값은 deque이다
스택 구현
#include <vector>
#include <list>
using namespace std;
template<typename T, typename Container = vector<T>>
class MyStack
{
public:
void push(const T& value)
{
_container.push_back(value);
}
void pop()
{
_container.pop_back();
}
T& top()
{
return _container.back();
}
bool empty() { return _container.empty(); }
int size() { return _container.size(); }
private:
//vector<T> _container;
//list<T> _container;
Container _container;
};
//stack<int> s;// 기본 deque
//stack<int, deque<int>> s;// deque로 명시적 지정
//stack<int, vector<int>> s;// vector로 지정
//stack<int, list<int>> s;// list로 지정
MyStack<int, list<int>> s;// 우리가 만든 것 또한 다양하게 가능
s.push(1);
s.push(2);
s.push(3);
while (s.empty() == false)
{
int data = s.top();
s.pop();
cout << data << endl;
}
int size = s.size();
'자료구조 & 알고리즘 > [루키스] C++ 자료구조 & 알고리즘' 카테고리의 다른 글
[C++ 자/알 Note] 오른손 법칙 개선 (미로 탐색) (0) | 2025.01.08 |
---|---|
[C++ 자/알 Note] 큐 구현 (0) | 2025.01.08 |
[C++ 자/알 Note] 연결리스트 구현 (0) | 2025.01.08 |
[C++ 자/알 Note] 동적배열 구현 (0) | 2025.01.07 |
[C++ 자/알 Note] 배열, 동적배열, 연결리스트 (0) | 2025.01.04 |