下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面画线处填上适当语句,完成栈类模板的定义。 template<class T> class T stack{ enunl{size=1000}; T stack[size]; in[top; public: T stack( ):top(0){} void push(cons[T &i){ if(top<size)stack[top++]=i; } T pop( ){ if(top==0)exit(1); //栈空时终止运行 return______; } };
参考答案:stack(--top);
解析: POP( )操作中,当栈中含有元素时则弹出栈顶元素,所以应该返回栈顶元素stack(--top),由于top指针始终指向的是栈顶元素的上一单元,所以出栈时应该是先将top下移,然后出栈,故应该是--top而不是top--。