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

admin2012-01-20  19

问题 下面是一个栈类的模板,其中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,才能把栈顶元素弹出。
转载请注明原文地址:https://kaotiyun.com/show/OJVp777K
0

最新回复(0)