首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
请利用两个栈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
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){ //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
学硕统考专业
相关试题推荐
二战后主要资本主义国家经济恢复和发展的杠杆是()①政府采取宏观调控政策②发展国家垄断资本主义③充分利用科技成果④加强国际经济联系
毛泽东认为,社会主义这个阶段可分为两个阶段,包括()。
“瓜步之战”发生在下列哪两个政权之间?()
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
“两个凡是”
随机试题
公务员辞退的法律后果是()
能使数据库记录满屏显示而不暂停的命令是()。
肝肾不足型闭经的最佳选方是肝肾虚损型痛经的最佳选方是
2006年12月5日,申请人某市A区甲公司向该市B区人民法院申请诉前财产保全,冻结被申请人该市C区乙公司银行存款10万元,并提供了相应数额担保。B区人民法院根据甲公司的申请冻结了乙公司银行存款10万元。但是甲公司未在法定期间起诉,因而给乙公司造成经济损失3
政府补助的主要形式包括税收返还,增值税出口退税等。()
2015年5月,李某去一家外企应聘,声称自己是某名牌大学法学硕士毕业,取得了司法考试资格证书,并将自己的证书复印件交给了招聘人员。该公司急需法律顾问,于是以高薪聘请李某,请其担任法律主管,双方签订了劳动合同,合同期限为5年,试用期为6个月。李某自2015年
你单位离退休人员占在职人员的一半以上,离退休人员中原担任领导职务的,拥有大专以上学历的人员又占大多数。他们非常关心单位的发展,参与管理的愿望强烈。如得不到满足,个别的还向上级领导反映你不尊重老同志,你怎么处理这件事?
狂犬病是一种对人、畜危害很大的传染病。人、畜如果被病犬咬伤,感染上病毒就会发病,而发病后无一例外地死亡。医学研究表明:被病犬咬伤后24小时内注射狂犬病疫苗,可大大降低发病概率。由此可知:
简述我国民族自治机关自治权的主要内容。(2015法简32)
Educationgivesustheknowledgeoftheworldaroundus.Itdevelopswithusaperspectiveoflookingatlife.Ithelpsusbuild
最新回复
(
0
)