首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请将下列栈类Stack补充完整 class Stack{ private: int pList[100]; //int数组,用于存放栈的元素 int top;
请将下列栈类Stack补充完整 class Stack{ private: int pList[100]; //int数组,用于存放栈的元素 int top;
admin
2009-06-20
58
问题
请将下列栈类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://www.kaotiyun.com/show/qojp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下叙述中正确的是
若有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb[],intflag){inti,j;for(i=
若要使用C数学库中的sin函数,需要在源程序的头部加上#include关于引用数学库,以下叙述正确的是()。
以下叙述中正确的是
有以下程序#include<stdio.h>main(){intx=0x9;printf("%c\n",’A’+x);}程序运行后的输出结果是
有关C语言标识符,以下选项中不合法的是()。
下面不属于结构化程序设计风格的是
算法的有穷性是指()。
算法的有穷性是指()。
输出测试用例由测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。
随机试题
下列属于我国的金融调控监管机构的有()。
下述哪类患者不宜行支气管镜检查
类白血病的各类型中,碱性磷酸酶染色积分显著增高
下面哪项与中骨盆狭窄无关
维生素C中酸性最强的羟基是
A.细动脉玻璃样变性B.细动脉纤维化C.细动脉淀粉样变性D.细动脉纤维素样坏死E.细动脉纤维素样变性恶性高血压的基本病变是
甲公司于2006年3月2日签发同城使用的支票1张给乙公司,金额为10万元人民币,付款人为丁银行。次日,乙公司将支票背书转让给丙公司。2006年3月17日,丙公司请求丁银行付款时遭拒绝。丁银行拒绝付款的正当理由有哪些?()
土地调查是对土地()、()、()、()及其空间分布等各种数据进行的科学调查,是地籍管理的基础。
2013年12月31日,甲公司将账面价值为2000万元的一条生产线以3000万元出售给租赁公司,并立即以融资租赁方式向该租赁公司租入该生产线,租期10年,尚可使用年限15年,租赁期满后归还该设备。租回后固定资产入账价值为2500万元。租入的固定资产按直线法
甘肃五个宝不包括()
最新回复
(
0
)