下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈项元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。 template<class T> class Ts

admin2010-06-06  50

问题 下面是一个栈类的模板,其中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]。
转载请注明原文地址:https://kaotiyun.com/show/XMjp777K
0

最新回复(0)