728x90
템플릿 이용해서 스택을 일반화해봤다.
클래스 활용도 연습을 해볼 겸, 템플릿 사용도 연습을 해볼 겸...
다른 기능 없이 아주 일반적인 push, pop, 생성자만 구현했다.
다음엔 리스트도 해볼 생각.
#include <iostream> using namespace std; template <class T> class Stack { int tos; T data[100]; public: Stack(); void push(T element); T pop(); }; template <class T> Stack<T>::Stack() { tos = -1; } template <class T> void Stack<T>::push(T element) { if (tos == 99) { cout << "stack full"; return; } tos++; data[tos] = element; } template <class T> T Stack<T>::pop() { T retData; if (tos == -1) { cout << "stack empty"; return 0; } retData = data[tos--]; return retData; } int main() { Stack<int> iStack; iStack.push(3); cout << iStack.pop() << endl; Stack<double> dStack; dStack.push(3.5); cout << dStack.pop() << endl; Stack<char> *p = new Stack<char>(); p->push('a'); cout << p->pop() << endl; delete p; }
728x90
'Computer Science > Data Structure, Algorithm' 카테고리의 다른 글
Algorithm] 기수 정렬(Radix Sort) (0) | 2017.06.12 |
---|---|
Algorithm] 외부 정렬(External Sort) (0) | 2017.06.10 |
Algorithm] 동적계획법 - 편집 거리(Edit Distance) (0) | 2017.05.29 |
Algorithm] KOI(한국정보올림피아드) 지역본선 - 탑 (2) | 2017.05.27 |
Algorithm] 동적계획법 - 연속 행렬 곱셈 (0) | 2017.05.24 |