请将下列栈类Stack补充完整 class Stack{ private: int pList[100]; //int数组,用于存放栈的元素 int top;

admin2009-06-20  29

问题 请将下列栈类Stack补充完整
   class Stack{
   private:
       int pList[100];            //int数组,用于存放栈的元素
       int top;                   //栈顶元素(数组下标)
   public:
       Stack():top(0){}
       void Push(const int &item);//新元素item压入栈
       int Pop(void);             //将栈顶元素弹出栈
   };
   void Stack::Push(const int &item){
       if(top==99)                //如果栈满,程序终止
           exit(1);
       top++;                    //栈顶指针增1
       【  】;
   }
   int Stack::Pop(){
       if(top<0)                  //如果栈空,程序终止
           exit(1);
       return pList[top--];
   }

选项

答案pList[top]=item

解析 本题考查的知识点是:堆栈数据结构。堆栈是一种先进后出的队列,每次入栈(存入数据)在栈顶,出栈(取出数据)也在栈顶,所以一个堆栈一般由一个数组加上一个栈顶指针(可以是指向数组元素的指针,也可以是指示数组下标位置的 int型变量)构成,本题的pList[100]和top就是。根据栈顶指针所指位置的差异,有两种情况要注意:一是,栈顶指针指向下一次入栈的位置,即栈顶指针所指位置是一个空位置,下次入栈直接存入栈顶指针所指位置,然后栈顶指针再增1。出栈则需先将栈顶指针减1,然后取出栈顶指针所指数据。二是,栈顶指针指向下一次出栈的位置,即栈顶指针所指位置是最后一个有效数据,下次出栈直接取出栈顶指针所指数据,然后栈顶指针再减1。入栈则需先将栈顶指针增1,然后将数据存入栈顶指针所指位置。从Pop()函数中可以看出,是先取数然后top才会减1,故属于后种情况。所以Push()函数应该先增1然后存数。增1题目已经给出,所以应填pList[top]=item。
转载请注明原文地址:https://jikaoti.com/ti/4TW0FFFM
0

最新回复(0)