首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请利用两个栈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
44
问题
请利用两个栈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://jikaoti.com/ti/opfjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
从20世纪50年代开始,西欧和日本资本主义经济持续发展的共同原因是()。①政府都推行了一些社会改革,促进了经济发展②都注重发展或引进先进的科学技术、提高劳动生产率③都重视发展教育,培养人才④都接受了国外大量订货,刺激了经济发
17世纪英国资产阶级革命中,曾利用了古老文件同专制王权作斗争。这一古老文件是()
《关于建国以来党的若干历史问题的决议》
论述东欧剧变的原因和性质。
明朝灭亡后,以下南明小朝廷存在的先后顺序是()。①绍武政权②永历政权③隆武政权④弘光政权
阅读下列材料,并结合所学知识回答问题:材料一重申粮食垄断和价格都是不可更改的,重申必须同粮食投机商进行无情斗争,同时责成每一者,必须在本法令公布后一周内,把超过播种田地和自己到下次收获前的定额消费量的全部余粮呈报交售,呈报的办法由粮
材料一从波罗的海斯德丁(什切青)到亚得里亚海边的里亚斯特,一幅横贯欧洲大陆的铁幕已经降落下来……无一不处在苏联的势力范围之内。
《关于建国以来党的若干历史问题的决议》指出:“我们现在赖以进行现代化建设的物质技术基础,很大一部分是这个期间建设起来的,全国经济文化建设等方面的骨干力量和他们的工作经验,大部分也是在这个期间培养和积累起来的,这是这个期间党的T作的主导方面。”“这个期间”是
西汉的主要赋税形式中。征收对象是儿童的是()。
在20世纪50年代至70年代。改革卓有成效并促进了经济较快发展的国家是()。①日本②匈牙利③捷克斯洛伐克④波兰
随机试题
啤酒原麦汁浓度是通过测定啤酒的真正浓度和()通过计算得到的。
在实际应用中,并励和复励直流电动机要实现电机反转,一般可采用的方法是()。
_____________,即从拥有先进技术的单位或企业进行购买,然后加以吸收消化再进行技术开发。
检查乳糜微粒常用的染色液是
男性,50岁,间断上腹痛2年,疼痛发作与情绪、饮食有关。查体:上腹部轻压痛。胃镜:胃窦皱襞平坦,黏膜粗糙无光泽,黏膜下血管透见,应考虑的诊断是
A、情感淡漠B、抑郁状态C、痴呆状态D、脑衰弱综合征E、缄默状态意识清楚,记忆力差,生活自理能力下降,缺乏同情心,本能活动增多,见于
工程索赔中工程环境的变化包括()。
以保证方式提供担保的,应当为连带责任担保,且保证人最近1期经审计的净资产额应不低于其累计对外担保的金额。( )
牡丹江街居体制改革后,新建了兴荣社区,现需要对社区内居民基本情况进行普查登记,你作为社区工作者,为居民发布一则入户调查通知。答题要求:格式正确,用语规范,字数不限。
计算下列各题:由方程xy=yx确定x=x(y),求.
最新回复
(
0
)