问题 填空题

请将下列栈类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 【15】 ; } 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。

单项选择题
多项选择题