블로그 이미지

[C++][자료구조] Template 를 이용한 Stack Source Code

2013. 1. 4. 13:21

열혈강의 C++  P.464


class, Template를 이용한 Stack

#include <iostream> using std::cout; using std::endl; template <typename T> class Stack{ private: int topIdx; // 마지막 입력된 위치의 인덱스 T * stackPtr; // 스택 포인터 public : Stack(int s=10); ~Stack(); void Push(const T& pushValue); T Pop(); }; template <typename T> Stack<T>::Stack(int len){ topIdx=-1 //스택 인덱스 초기화 stackPtr=new T[len]; //데이터 저장 위한 배열 선언 } template <typename T> Stack<T>::~Stack() { delete[] stackPtr; } template <typename T> void Stack<T>::Push(const T& pushValue) { stackPtr[++topIdx] = pushValue; } template <typename T> T Stack<T>::Pop() { return stackPtr[topIdx--]; } int main() { Stack<char> stack(10); stack.Push('A'); stack.Push('B'); stack.Push('C'); for(int i=0;i<3; i++) { cout<<stack.Pop()<<endl; } Stack<int> stack2(10); stack2.Push(10); stack2.Push(20); stack2.Push(30); for(int j=0; j<3; j++) { cout<<stack2.Pop()<<endl; } return 0

}