b to p top→空栈 →a进栈 b进栈 to p to p edcb 充edcb 选栈示例 进栈 Z进栈溢出
进栈示例
to p edcb top- d top- b dcba 退栈 e退栈 d退栈 b 退栈示例 tp→a退栈top→空栈
退栈示例
template <class Type> void Stack<Type>:: Push( const Type item)t assert(!Is Full () ∥/先决条件断言 elements[++top]=item;1入新元素 template <class Type> Type Stack< Type>:: Popoi aert( EMpty());∥先决条件断言 return elements[op-;/出栈顶元素
template <class Type> void Stack<Type>:: Push ( const Type & item ) { assert ( !IsFull ( ) ); //先决条件断言 elements[++top] = item; //加入新元素 } template <class Type> Type Stack<Type>:: Pop ( ) { assert ( !IsEmpty ( ) ); //先决条件断言 return elements[top--]; //退出栈顶元素 }
template <class Type> Type stack<Type>:: GetTopoi assert(!sEm();∥先决条件断言 return elements{top];/取出栈顶元素 双栈共享一个栈空间 maxSize-1 b[0 t[0] t[ b[1
template <class Type> Type stack<Type>:: GetTop ( ) { assert ( !IsEmpty ( ) ); //先决条件断言 return elements[top]; //取出栈顶元素 } 双栈共享一个栈空间
多栈处理栈浮动技术 n栈共享一个数组空间Mml 设立栈顶指针数组tm+1和 栈底指针数组b[n+1 卬和b分别指示第栈的栈顶与栈底 bm作为控制量,指到数组最高下标 各栈初始分配空间s=Lm/n」 指针初始值t0=b[0]=-1bl=m-1 t=b=b[i-1+s,i=1,2,…,n-1
多栈处理 栈浮动技术 n栈共享一个数组空间V[m] 设立栈顶指针数组 t [n+1] 和 栈底指针数组 b [n+1] t[i]和b[i]分别指示第i个栈的栈顶与栈底 b[n]作为控制量,指到数组最高下标 各栈初始分配空间 s = m / n 指针初始值 t[0] = b[0] = -1 b[n] = m-1 t[i] = b[i] = b[i-1] + s, i = 1, 2, …, n-1