////////////////////////////////////////////////////////// // mystack.h // a template class example // by Wen-Nung Tsai, tsaiwn@csie.nctu.edu.tw #ifndef __MYSTACK__ #define __MYSTACK__ enum{ NELEMENT=99 }; template class MyStack{ HAHA data[NELEMENT]; int stkptr; public: MyStack(void){ stkptr= -1; } void push(HAHA); HAHA pop(void); HAHA top(void); int isempty(void){ return (stkptr <= -1) ;} int empty(void){ return isempty();} int isfull(void){ return (stkptr >= NELEMENT-1);} }; template inline HAHA MyStack ::top(void) { return data[stkptr]; } template void MyStack::push(HAHA x) { stkptr++; data[stkptr] = x; } /**********************************/ template HAHA MyStack::pop(void) { HAHA tmp=data[stkptr]; stkptr--; return tmp; } #endif