//-------------------------------------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TDPtrStack Ä£°åÀà // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TDPtrStack ÉùÃ÷ // = Maintainers: // //-------------------------------------------------------------------------------------------------------+ #ifndef _TDPTRSTACK_H_ #define _TDPTRSTACK_H_ #ifndef _TDPTRLIST_H_ #include "TDPtrList.h" #endif template class TDPtrStack : public TDPtrList< R > { public: TDPtrStack(int dFlag = 0); void Push(R *dat); R * Pop(); R * Top(); }; template TDPtrStack::TDPtrStack(int dFlag) : TDPtrList (dFlag) { } template void TDPtrStack::Push(R *dat) { this->MoveEnd(); this->Insert(dat); } template R* TDPtrStack::Pop() { R* res = this->Tail(); if(this->tail != NULL) { #ifdef SUPERLST this->tail = NULL; #else this->tail->data = NULL; #endif } if(this->Length()) { this->Remove(this->Length() - 1); } return res; } template R* TDPtrStack::Top() { return this->Tail(); } #endif