首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中含有一个源程序文件proj2.cpp,请将堆栈类的定义补充完整。使程序的输出结果为: The element of stack are:4321 注意:请勿修改主函数main
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中含有一个源程序文件proj2.cpp,请将堆栈类的定义补充完整。使程序的输出结果为: The element of stack are:4321 注意:请勿修改主函数main
admin
2016-06-12
32
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中含有一个源程序文件proj2.cpp,请将堆栈类的定义补充完整。使程序的输出结果为:
The element of stack are:4321
注意:请勿修改主函数main和其他函数中的任何内容,只在横线处编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
//proj2.cpp
#include
using namespace std;
const int Size=5;
class Stack;
class Item
f
public:
//********** found**********
Item(const int&val):________{)
//构造函数对item进行初始化
private:
int item;
Item*next;
friend clasS Stack;
};
class Stack
{
public:
Stack():top(NULL){}
一Stack();
int Pop();
void Push(const int&);
private:
Item*top;
};
Stack::一Stack()
{
Item*P=top,*q;
while(p!=NULL)
{
q=p一>next;
**********found**********
_________; //释放P所指向的节点
P=q;
}
}
int Stack::Pop()
{
Item*temp;
int ret;
********** found**********
——; //使temp指向栈顶节点
ret=top一>item;
top=top一>next;
delete temp;
return ret;
)
void Stack::Push(const int&val)
{
Item*temp=new Item(val);
********** found**********
——;;
//使新节点的next指针指向栈顶数据
top=temp;
}
int main()
{
Stack s;
for(int i=1;i
S.Push(i);
cout<<“The element of stack are:”;
for(i=1;i
cout<
return 0;
}
选项
答案
(1)it:em(val) (2)delete[]p (3)temp=top (4)temp一>next=top
解析
本题考查堆栈类Stack类、Item类、构造函数、析构函数、成员函数和函数调用。堆栈类的节点一般使用指针表示,也就会考查到指针的相关知识点,要注意释放指针应使用delete[]语句。
【解题思路】
(1)主要考查构造函数,对私有成员进行初始化,即item(val)。
(2)主要考查使用delete语句释放指针,一般格式为:delete[]+指针。
(3)指向栈顶节点的是top指针,要使temp指向栈顶节点,故使用语句temp=top;。
(4)指向栈顶节点的是top指针,要使新节点的next指针指向栈顶数据,故使用语句temp一>next=top;。
【解题宝典】
本题涉及堆栈类,栈是先进后出,后进先出的存储结构。对于此类问题指针的使用是个难点,要记住栈中指向栈顶节点的是top指针,添加数据时要往栈顶添加。
转载请注明原文地址:https://kaotiyun.com/show/ZYNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
对于下面的程序,说法正确的是 #include<iostream.h> voidmain() {intx=3,y=4,z=2; if(X=y+z)cout<<"x=y+Z"; elsecout<<"x!=y+Z";}
以下程序中循环体总的执行次数是 inti,j; for(i=6;i>1;i--) for(j=0;j<i;j++) {……}
设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应是【】。
下列描述中,表达错误的是()。
要采用“cin,tout”进行输入输出时,必须包含的头文件是【】。
执行下列语句后,c3中的值为【】 intc1=1,c2=2,c3;c3=1.0/c2*c1;
若变量已正确定义并赋值,以下符合C++语言语法的表达式是
已知枚举类型定义语句为:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};则下列说法中,错误的是()。
下面叙述错误的是()。
以下哪个不是C++语言中的有效标识符()。
随机试题
输出电压为24V的集成稳压器是【】
下列方剂中,含有山茱萸、附子的是( )
地毯按其内在质量、使用性能和适用场所的不同,一般分为几个等级?
建设工程施工索赔是指当事人在实施合同的过程中,因( )向对方提出给予补偿的权利。
职业道德行为习惯是衡量会计人员的职业道德素质高低的重要标志。
根据企业所得税相关规定,企业下列支出超过税法规定扣除限额标准,准予向以后年度结扣除的有()。
某地区用800万元捐助款(含初期建设费用和年维护费用)修建一座永久性建筑物。该建筑物每年的维护费用为16万元(折算到年末),为此,除初期建设费用外,其他捐助款(用于维护的费用)以6%的利率存人银行,以保证正常的维护费用开支。则可用于修建永久性建筑物的初期建
我国黑龙江北部一月份平均气温在一30℃以下,漠河的最低气温曾达到过一52,3℃,因此只能使用酒精温度计而不能使用水银温度计,是因为()。
AfterreadingthefollowingintroductiontothecourseonFirstCertificateinEnglish,youarerequiredtocompletetheoutline
A、Thenumberofadultgirlsisexpectedtodoubleby2050.B、ChildmarriageinAfricawillbeendedby2050.C、Halfwomenwillb
最新回复
(
0
)