s3.12栈的顺序存贮结构 (三)基本操作的实现 template <class TElem> TElem& TStackSqu<TElem> Push(TElem &elem) if (len>=size-1 ong ret=Resizeroom(size+10) if(ret<0)throw TExcep Comm(3) roomen =elem len++ return room len-1I 16
16 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TElem& TStackSqu<TElem>::Push (TElem &elem) { if (len>=size-1) { long ret=ResizeRoom(size+10); if (ret<0)throw TExcepComm(3); } room[len]=elem; len++; return room[len-1]; }
s3.12栈的顺序存贮结构 (三)基本操作的实现 emplate <class telem> TElem& Tstacksqu<TElem>: Pop(void) if (len=0) throw TExcep Comm(3) len return room[len 17
17 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TElem& TStackSqu<TElem>::Pop (void) { if (len<=0) throw TExcepComm(3); len--; return room[len]; }
s3.12栈的顺序存贮结构 (三)基本操作的实现 template <class TElem TElem& TStackSqu<TElem>: GetTop(void return roomen template <class TElem> void TStackSqu<TElem>: Clear() len=0 18
18 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TElem& TStackSqu<TElem>::GetTop (void) { return room[len-1]; } template <class TElem> void TStackSqu<TElem>::Clear ( ) { len=0; }
s3.12栈的顺序存贮结构 (三)基本操作的实现 emplate <class telem> TElem& tStackSqu<TElem> RollUp O unsigned x room 0l for (long i=l; i<len; 1++) roomi-1=roomi room len-1=X return room[len-1
19 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TElem& TStackSqu<TElem>::RollUp ( ) { unsigned x; x=room[0]; for (long i=1; i<len; i++) room[i-1]=room[i]; room[len-1]=x; return room[len-1]; }
s3.12栈的顺序存贮结构 (三)基本操作的实现 emplate <class telem> TElem& tStackSqu<TElem>: RollDown O unsigned x Room len-11 for (int i=len-2 i>= roomi+l=roomi room[o=X return room len-l 20
20 §3.1.2 栈的顺序存贮结构 • (三) 基本操作的实现 template <class TElem> TElem& TStackSqu<TElem>::RollDown ( ) { unsigned x; x=room[len-1]; for (int i=len-2; i>=0; i--) room[i+1]=room[i]; room[0]=x; return room[len-1]; }