问题
填空题
下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈项元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。 template<class T> class Tstack { enum{size=1000}; T stack[size]; int top; public: Tstack():top(0){ void push(const T &i){ if(top<size) stack[top++]=i; } Tpop(){ if(top==0)exit(1);//栈空时终止运行 return ______; } };
答案
参考答案:stack[--top]或stack[top-=1]或stack[top=top-1]
解析: 此题考查的是堆栈数据结构。分析题目,首先利用函数void push(const T &i)将i压入栈,然后Tpop()将元素弹出,但由于在压入栈时,top值已经增加1;要弹出元素,须使top先减1,才能把栈顶元素弹出。故正确答案为stack[--top]。