Stack

이승덱·2021년 8월 24일
0

Algorithm&자료구조

목록 보기
6/20

Stack

  • 후입선출의 특징을 갖는 자료구조
  • ctrl + z 등의 되돌리기를 구현할 때 사용된다.
// Stack (LIFO	Last-In-First-Out	후입선출)

template<typename T, typename Container=vector<T>>
class Stack
{
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;
};
  • cpp의 std 자료구조들은 인테페이스가 대부분 통일된 형태로 구현되어 있다.

  • 따라서 Stack의 원소를 저장하는 자료구조가 List든 vector든 같은 명령어로 호출이 가능하다.

  • 실제 stack도 초기화 시 stack에 사용될 stl 자료구조를 template으로 받아 사용한다.

profile
공부 기록용 블로그입니다

0개의 댓글