s3.12栈的顺序存贮结构 (二)顺序栈类 template <class TElem> class TStackSqu: public TStacko<TElem> protected TElem room TElem elem Buff long size, long Copyroom (telem *objroom, long nl, TElem*srcRoom, long n2) long Resize room (long newSize)
11 §3.1.2 栈的顺序存贮结构 • (二) 顺序栈类 template <class TElem> class TStackSqu : public TStack0<TElem> { protected: TElem *room; TElem elemBuff; long size; long CopyRoom(TElem *objRoom, long n1, TElem *srcRoom, long n2); long ResizeRoom(long newSize);
s3.12栈的顺序存贮结构 (二)顺序栈类 public: TStackSqu o; TStack Squ(long mSize) StackSqu o virtual TElem& Push(telem &elem) virtual TElem& pop (void) virtual TElem& getTop( void) virtual TElem& rolldown( virtual TElem& rollup( virtual void Clear( virtual void Print( 12
12 §3.1.2 栈的顺序存贮结构 • (二) 顺序栈类 public: TStackSqu (); TStackSqu (longmSize); ~TStackSqu (); virtual TElem& Push (TElem &elem); virtual TElem& Pop (void); virtual TElem& GetTop (void); virtual TElem& RollDown ( ); virtual TElem& RollUp ( ); virtual void Clear ( ); virtual void Print ( ); }
s3.12栈的顺序存贮结构 (三)基本操作的实现 emplate <class telem> TStackSqu<TElem>: TStackSqu( roomENULL size=o len=o 13
13 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TStackSqu<TElem>::TStackSqu ( ) { room=NULL; size=0; len=0; }
s3.12栈的顺序存贮结构 (三)基本操作的实现 emplate <class telem> TStackSqu< TElem?: TStackSqu(long mSize) len=o room=new TElem sIze if (room==NULL) throw TExcep Comm(4) size=mize
14 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TStackSqu<TElem>::TStackSqu (long mSize) { len=0; room=new TElem[mSize]; if (room==NULL) throw TExcepComm(4); size=mSize; }
s3.12栈的顺序存贮结构 (三)基本操作的实现 emplate <class telem> TStack Squ<TElem>: TStackSqu( if(room! =nULL) deletel] room 15
15 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TStackSqu<TElem>::~TStackSqu ( ) { if (room!=NULL) delete[] room; }