首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请利用两个栈s1和s2来模拟一个队列。已知栈的三个运算定义如下: (1)push(st,X):元素X入st栈: (2)pop(st,X):st栈顶元素出栈,赋给变量X: (3)sempty(st):判st栈是否为空。 那么如
请利用两个栈s1和s2来模拟一个队列。已知栈的三个运算定义如下: (1)push(st,X):元素X入st栈: (2)pop(st,X):st栈顶元素出栈,赋给变量X: (3)sempty(st):判st栈是否为空。 那么如
admin
2019-01-16
51
问题
请利用两个栈s1和s2来模拟一个队列。已知栈的三个运算定义如下:
(1)push(st,X):元素X入st栈:
(2)pop(st,X):st栈顶元素出栈,赋给变量X:
(3)sempty(st):判st栈是否为空。
那么如何利用栈的运算来实现该队列的三个运算:
(1)enqueue:插入一个元素入队列;
(2)dequeue:删除一个元素出队列:
(3)queue—empty:判队列为空。
(请写明算法的思想及必要的注释。)
选项
答案
栈的特点是后进先出,队列的特点是先进先出。所以,用两个栈s1和s2模拟一个队列时,s1作输入栈,逐个元素压栈,以此模拟队列元素的入队。当需要出队时,将栈s1退栈并逐个压入栈s2中,s1中最先入栈的元素,在s2中处于栈顶。s2退栈,相当于队列的出队,实现了先进先出。显然,只有栈s2为空且s1也为空,才算是队列空。 (1)int enqueue(stack S1,elemtp X){ //s1是容量为n的栈,栈中元素类型是elemtp。本算法将x入栈, //若入栈成功返回1,否则返回0 if(topl==n&&!sempty(s2)) //top1是栈s1的栈顶指针,是全局变量 {printf(”栈满”);retum(0);} //s1满s2非空,这时s1不能再入栈 if(topl==n&&sempty(s2)) //若s2为空,先将s1退栈,元素再压栈到s2 {while(!sempty(s1)){pop(s1,x);push(s2,x);} push(sl,x):return(1); //x入栈,实现了队列元素的入队 } (2)void dequeue(stack s2,s1){ //s2是输出栈,本算法将s2栈顶元素退栈,实现队列元素的出队 if(!sempty(s2)) //栈s2不空,则直接出队 {pop(s2,x);printf(”出队元素为”,x);} else //处理s2空栈 if(sempty(s1)){printf(”队列空”);exit(0);} //若输入栈也为空,则判定队空 else //先将栈s1倒入s2中,再作出队操作 { while(!sempty(s1)){pop(sl,x);push(s2,x);} pop(s2,x); //s2退栈相当于队列出队 pfinff(”出队元素”,x); } (3)int queue—empty(){ //本算法判用栈s1和s2模拟的队列是否为空 if(sempty(s1)&&sempty(s2))return(1); //队列空 else return(0): //队列不空 }
解析
转载请注明原文地址:https://kaotiyun.com/show/0YRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
明清两朝已经是中国封建社会的晚期,同时也出现了许多新的社会现象,最明显的是()。
阅读材料,回答问题:材料一:战后美国对一些新兴工业部门、重大科研项目、现代化公共设施等投入大量资金,如美国时发展原子能工业的投资,从1945年到1970年共计达175亿美元。美国还通过国家力量来扩张国外市场,从50年代中期起,为加强国际市场的竞争力,政府
阅读材料,回答问题:材料一:战后美国对一些新兴工业部门、重大科研项目、现代化公共设施等投入大量资金,如美国时发展原子能工业的投资,从1945年到1970年共计达175亿美元。美国还通过国家力量来扩张国外市场,从50年代中期起,为加强国际市场的竞争力,政府
“二战”爆发的原因是多种因素综合作用的结果,其中最根本的因素是()。
阅读材料,回答以下问题:一、大清帝国之皇统,万世不易。二、皇帝神圣,不可侵犯。三、皇帝权以宪法规定为限。四、皇帝继承之顺序,于宪法规定之。五、宪法由资政院起草议决,皇帝颁布之。六、宪政改正提案权,属于国会。七、上院议员,由国民于法定特别资格公选之。八、总
希腊雅典城邦的“民众法庭审判官由公民抓签选出,任期只有一年,每个公民一生中只能担任两次审判官的职务”。此规定()。
论述王安石变法的背景、主要内容、作用及其失败的原因。
第一次国共合作采取了共产党员以个人身份加入国民党的党内合作方式,最早提出这种方式的是()。
下图是某模型机CPU的组成框图。设该CPU采用同步控制逻辑,分取指周期、取第一操作数周期,取第二操作数周期、执行周期四个机器周期,每个机器周期有T0、T1、T2三个节拍。试写出如下双操作数运算指令的微操作命令及节拍安排。ADDR0,(R1)完成功
试就MutualExclusion、Progress、BoundedWaiting论述以下解决双进程临界区问题的算法是错误的:ProcessPO:do{flag[0]=true;While(flag[1]);
随机试题
HehasneverbeentoLondonbefore,______heknowseverythingaboutthepeopleandthecustomsthere.
绞窄性肠梗阻,早期可出现休克。()
患者,男性,68岁。活动后心悸、气短4年,突发喘憋1小时来诊。高血压病史10余年,平时血压波动于130~150/70~90mmHg。查体:血压230/100mmHg,端坐位,双肺底可闻及少许湿性啰音,心率114次/分。该患者最适宜的治疗是()
下列有关增值税纳税义务发生时间的表述中,符合我国增值税法律制度规定的有()。
为什么证券投资基金、企业年金基金不属于法律主体但属于会计主体?
一般侵权责任的构成要件有()。
中国要坚持走和平发展道路,走和平发展道路
设A为三阶矩阵,α1,α2,α3是线性无关的三维列向量,且满足Aα1。=α1+α2+α3,Aα2=2α2+α3,Aα3=2α2+3α3。求可逆矩阵P使得P-1AP=Λ。
设直线y=ax与抛物线y=x2所围成图形的面积为S1,它们与直线x=1所围成图形的面积为S2,并且a<1.试确定a的值,使S1+S2达到最小,并求出最小值;
在VFP中主索引字段()。
最新回复
(
0
)