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] 동적계획법 - 연속 행렬 곱셈 (0) | 2017.05.24 |
| DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 6 (0) | 2017.05.21 |