首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请利用两个栈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-08-01
58
问题
请利用两个栈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:判队列为空。
(请写明算法的思想及必要的注释。)
选项
答案
栈的特点是后进先出,队列的特点是先进先出。所以,用两个栈sl和s2模拟一个队列时,s1作输入栈,逐个元素压栈,以此模拟队列元素的入队。当需要出队时,将栈s1退栈并逐个压入栈s2中,s1中最先入栈的元素,在s2中处于栈顶。s2退栈,相当于队列的出队,实现了先进先出。显然,只有栈s2为空且s1也为空,才算是队列空。 (1)int enqueue(stack s1,elemtp x){ //s1是容量为n的栈,栈中元素类型是elemtp。本算法将x入栈, //若入栈成功返回1,否则返回0 if(top1==n&&!sempty(s2)) //top1是栈s1的栈顶指针,是全局变量 {printf(“栈满”);return(0);} //s1满s2非空,这时s1不能再入栈 if(top1==n&&sempty(s2)) //若s2为空,先将s1退栈,元素再压栈到s2 {while(!sempty(s1)){pop(s1,x);push(s2,x);} push(s1,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(s1,x);push(s2,x);} pop(s2,x); //s2退栈相当于队列出队 printf(“出队元素”,x); } (3)int quelle_empty(){ //本算法判用栈s1和s2模拟的队列是否为空 if(sempty(s1)&&sempty(s2))return(1); //队列空 else return(0); //队列不空 } 提示:算法中假定栈s1和栈s2容量相同。出队从栈s2出,当s2为空时,若s1不空,则将s1倒入s2再出栈。入队在s1,当s1满后,若s2空,则将s1倒入s2,之后再入队。因此队列的容量为两栈容量之和。元素从栈s1倒入s2,必须在s2空的情况下才能进行,即在要求出队操作时,若s2空,则不论s1元素多少(只要不空),就要全部倒入s2中。
解析
转载请注明原文地址:https://kaotiyun.com/show/pVCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
公元9~13世纪是西欧封建庄园的兴盛时期,典型的庄园采用()的剥削方式。
列宁称马克思、恩格斯是“19世纪人类三个最先进国家中三种主要思潮的继承人和天才的完成者”。这里“三个最先进国家”指的是()。
完整地表述电磁场理论的物理学家是()。
印度种姓制度中,处于被剥削被压迫地位的两个瓦尔那是()①婆罗门②刹帝利③首陀罗④吠舍
简述大化改新的内容和影响。
具体组织和发动武昌起义的资产阶级革命机构是()。
在平衡二叉树中的每个结点上增设一个Lsize域,其值为它的左子树中的结点个数加1,试写一个时间复杂度为O(logn)的算法,确定树中第k个结点的位置。
IP数据报的报文格式如下图所示。在没有选项和填充的情况下,报头长度域的值为()。
图的D搜索类似于BFS,不同之处在于使用栈代替BFS中的队列,入/出队列的操作作为入/出栈的操作,即当一个顶点的所有邻接结点被搜索后,下一个搜索出发点应该是最近入栈(栈顶)的顶点。(1)用邻接表作为存储结构,写一个D搜索算法;(2)用D搜索方法
随机试题
头孢菌素类抗菌作用机制是
膀胱湿热证可出现下列哪些症状
A.VH、VLB.CH、CLC.CH2D.CH3E.CH4Ig同种异型决定簇存在于
阴痒应从以下哪方面辨证
有关皮片移植,正确的是
诊断明确的十二指肠球部溃疡患者,近3天每日排成形黑便1次,量约50g。应选的治疗方案为
女性,30岁,心悸、月经失调2个月,甲状腺Ⅰ度肿大,可闻及血管杂音,心律不齐,呈房颤律。最可能的诊断是
甲公司拥有乙公司60%有表决权的股份,能够控制乙公司财务和经营决策。2×21年6月1日,甲公司将本公司生产的一批产品出售给乙公司,售价为1000万元,成本为800万元。至2×21年12月31日,乙公司已对外出售该批存货的60%,当日,剩余存货的可变现净值
根据所给资料,回答下列问题。国家统计局数据显示,2016年年末,全国规模以上中小工业企业(以下简称“中小企业”)37.0万户,比2015年年末增加0.5万户企业,其中,中型企业5.4万户,占中小企业户数的14.6%,小型企业31.6万户,占中小企
自来水厂用来进行水消毒处理的常用化学试剂是:
最新回复
(
0
)