首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请利用两个栈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
2017-11-14
54
问题
请利用两个栈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){ //sl是容量为n的栈,栈中元素类型是elemtp。本算法将x入栈, //若入栈成功返回1,否则返回0 if(topl==n&&!sempty(s2)) //topl是栈s1的栈顶指针,是全局变量 {printf(”栈满”);return(O);} //sl满s2非空,这时s1不能再入栈 if(top1==n&&sempty(s2)) //若s2为空,先将sl退栈,元素再压栈到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 queue_empty(){ //本算法判用栈s1和s2模拟的队列是否为空 if(sempty(s1)&&sempty(s2))return(1); //队列空 else return(0); //队列不空 }
解析
转载请注明原文地址:https://kaotiyun.com/show/qxRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
二战后主要资本主义国家经济恢复和发展的杠杆是()①政府采取宏观调控政策②发展国家垄断资本主义③充分利用科技成果④加强国际经济联系
埃及巴达里文化、涅伽达文化工、涅伽达文化Ⅱ三个阶段属于什么时代的文化?()
下面哪项条约没有涉及德国的赔款问题?()
世界近代史上,世界经济发展经历了两次大的飞跃,即第一次工业革命和第二次工业革命。阅读下面两段材料,回答问题:材料一工业革命的主角——蒸汽机,是经验和科学相结合的产物。科学对工业革命的发展做出重大贡献。工场手工业的生产,主要依靠以人力和经
在周初分封中,分封同姓诸侯国、异姓诸侯国,也分封圣王之后,下面属于圣王之后的封国为()。
阅读下面史料,回答问题:材料一各缔约国主力舰替换总吨位按照标准排水量计算不得超过如下:合众国525000吨;英帝国525000吨;法国175000吨;意大利175000吨;日本315000吨。
阅读下面史料,回答问题:材料一各缔约国主力舰替换总吨位按照标准排水量计算不得超过如下:合众国525000吨;英帝国525000吨;法国175000吨;意大利175000吨;日本315000吨。
随机试题
改正下列词语中的错别字出奇制胜
计算机经历那四个发展阶段,完整的计算机系统由什么组成
邓小平提出建立国际政治经济新秩序必须()
某医院收一痢疾患者,该患者在入院时又感染了白喉杆菌,入院后发生白喉,这属于
患者,女,65岁。糖尿病史6年。因上腹不适2月余就诊,体检未发现异常体征。心电图提示部分导联可见锯齿波,应考虑为
A.5个工作日B.10个工作日C.15个工作日D.20个工作日E.30个工作日自收到药品零售企业的开办申请之日起,设区的市级药品监督管理机构作出是否同意筹建决定的期限为()
下列哪些事项是裁决书必须写明的?()
下列关于行政监督平台的说法中,错误的是()。
2014年6月10日,甲公司向乙公司购买一批商品,向乙公司开出一张100万元的商业汇票以支付货款,出票人为甲公司,付款人为丙公司,汇票的粘单上有丁、戊两公司的保证签章,其中丁公司保证80万元,戊公司保证20万元,同时在票据的、枯单上记载“保证人只承担一般保
HomepricesslidinNovember,raisingquestionsaboutwhetherthehousingrecoveryisrobustenoughtomaintainasustainedturn
最新回复
(
0
)