首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下程序实现栈的入栈和出栈的操作。其中有两个类:一个是节点类node,它包含点值和指向上一个节点的指针 prev;另一个类是栈类 stack, 它包含栈的头指针 top。 生成的链式栈如下图所示。 〈IMG onClick=over(this) title
以下程序实现栈的入栈和出栈的操作。其中有两个类:一个是节点类node,它包含点值和指向上一个节点的指针 prev;另一个类是栈类 stack, 它包含栈的头指针 top。 生成的链式栈如下图所示。 〈IMG onClick=over(this) title
admin
2010-03-29
96
问题
以下程序实现栈的入栈和出栈的操作。其中有两个类:一个是节点类node,它包含点值和指向上一个节点的指针 prev;另一个类是栈类 stack, 它包含栈的头指针 top。
生成的链式栈如下图所示。
〈IMG onClick=over(this) title=放大 src="tp/jsj/2jc++j28.1.gif"〉
下面是实现程序,请填空完成此程序。
#include 〈iostream〉
using namespace std;
class stack;
class node
{
int data;
node *prev;
public:
node(int d, node *n)
{
data=d;
prev=n;
}
friend class stack;
};
class stack
{
node *top; //栈头
public:
stack()
{
top=0;
}
void push(int i)
{
node *n=【 】;
top=n;
}
int pop()
{
node *t=top;
if (top)
{
top=top-〉prev;
int c= t-〉data;
delete t;
return c;
}
return 0;
}
int main ()
{
stack s;
s.push(6);
s.push(3);
s.push (1);
return 0;
}
选项
答案
new node(i,top)
解析
本题考核友元类以及对象成员的应用,属于综合考题。本程序中定义了两个类node和stack,用于实现堆栈的压入和弹出操作。其中,类 stack是类node的友元类,这样类stack中的成员可以访问类node中的所有成员。在类node中,定义两个私有变量:整型变量data和对象指针prev。变量data用于保存节点的数值,而对象指针prey用于指向上一节点。在类node的构造函数中,形参是数据d和对象指针n。在类stack中,定义了一个私有变量,栈顶指针top,并在构造函数中赋值0(即指针为空)。
函数push()实现入栈操作,即把形参i压入栈中,那么此时应该创建一个新的节点,并让这个节点的prev指针指向栈顶,即top。然后让top指针指向新的节点。所以在push()函数中应填入“node*n=new node(i,top)”。类stack中的pop()函数实现数据的弹出功能。先定义了一个对象指针t指向栈顶节点。然后判断堆栈是否为空,如果为空,则返回0,否则就弹出栈顶节点的值。那么应该先将栈顶指针后退一个节点,然后把对象t指针指向的节点值弹出,并删除节点t。
转载请注明原文地址:https://kaotiyun.com/show/ATjp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若有以下程序#includemain(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%d\n",c1,c2);}则程序的输出结果是
有如下程序:#include<stdio.h>wildmain(){intx=Ox13:if(x=Ox18)printf(″T″);printf(″F\n″);}程序运行后的结果是()。
有以下函数:intaaa(char*s){char*t=s:while(*t++);t--:return(t-s);}以下关于aaa函数功能叙述正确的是()。
有下列程序:#include<stdio.h>/*fun函数的功能是将a所指数组元素从大到小排序*/voidfun(int*a,intn)main(){intt,i,j;{intc[10]={1,2,3,4,5,6,7,8,9,0}
若变量己正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是
某二叉树共有7个节点,其中叶子节点只有1个,则该二叉树的深度为(假设根节点在第1层)()。
设有以下函数:voidfun(intn,char*s){……}则下面对函数指针的定义和赋值均正确的是
设循环队列为Q(1:m),初始状态为front=rear=m。现经过一系列的入队与退队运算后,front=rear=1,则该循环队列中的元素个数为
设有以下函数:voidfun(intn,char*s){……}则下面对函数指针的定义和赋值均正确的是
请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中X是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。注
随机试题
丁某,患肺结核1年有余,曾予化疗药物,现请中医治疗。症见咳嗽无力,气短声低,咳痰清稀,色白,量较多,偶或咯血,血色淡红,午后潮热,伴有畏风怕冷,自汗与盗汗并见,纳少神疲,便溏,面白,舌质光淡,边有齿印
A.心悸喘咳,水肿尿少B.心悸眩晕,胸脘痞满C.心悸而烦,受惊易作D.心悸眩晕,少寐健忘痰热内扰之心悸的临床特点是
做PPD试验后观察结果的时间为
A.及时将预警信息通报本机构医务人员B.应当慎重经验用药C.应当参照药敏结果选用D.应当暂停针对此目标细菌的临床应用主要目标细菌耐药率超过50%的抗菌药物,应当
在以下哪几种情形下,检察机关可以作出不起诉决定:()
2005年6月12日,A汽车有限公司(以下简称“A公司”)与B发动机厂(以下简称“B厂”)签订了一份买卖合同。该合同约定:B厂应在2005年12月31日前向A公司提供某种型号的汽车发动机若干台,总价款为320万元,违约金为总价款的2%计6.4万元,货物验收
根据企业所得税法律制度的规定,下列收入中,属于企业所得税免税收入的是()。
2021年1月10日,甲上市公司发布虚假的重大利好消息。2021年2月20日,在全国范围发行的乙证券报首次揭露了甲公司的虚假消息,引起价格急剧波动,导致停牌。2021年3月30日,甲公司在中国证券监督管理委员会指定披露证券市场信息的媒体上,自行公告更正虚假
科学老师要想知道学生是否会做载物玻璃片,美术教师想要了解学生的绘画水平,品德老师要想判断学生的道德水平,最适合的方法是()
根据《软件文档管理指南GB/T16680-1996)),软件文档包括()等。
最新回复
(
0
)