为了账号安全,请及时绑定邮箱和手机立即绑定

关于c++栈结构算法题

关于c++栈结构算法题

米脂 2019-04-19 16:30:02
英文原题:writeaprogramtocombinetwostacksbyplacingallelementsofthesecondstackontopofthoseinthefirst.Therelativeorderingofelementsfromthesecondstackisunchanged.Followingthecombine,thesecondstackisempty.(Hint:youcanusepushandpopmethodsofthosestacksdirectly)意思是:栈1存有1,2,3,4,5;栈2存有6,7,8,9,10;如何让栈2中的原有数据保持顺序不变而放入栈1中;实现效果是:栈1存有1,2,3,4,5,6,7,8,9,10;栈2为空;能贴上c++代码最好
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

1楼答案过于麻烦。只需要用到一个临时栈就行了。过程为:
创建临时栈t
将栈2中的元素依次弹出到t中,这时候t的内容为10,9,8,7,6
将t中的元素再依次弹出到栈1中,栈1此时的顺序正好是从1到10
                            
查看完整回答
反对 回复 2019-04-19
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

假设栈1里的数按照从栈顶到栈底12345排序,栈2按照5678910排序。现在新建一个栈3,将栈1中的数据依次出栈到栈3中,此时栈3中的数据从栈顶到栈底为54321,栈1此时为空。再新建一个栈4,将栈2中的数据依次入栈4,则在对入栈操作后,栈4中的数据此时从栈顶到栈底为109876。然后再将栈4入栈1,对栈1入栈操作后,栈1中数据从顶到底为678910,同样,再将栈3入栈1,那么入栈后,栈1此时数据从顶到底为1234567891。现在,四个栈的状态是,栈2为空,栈3为空(过渡栈),栈4为空(过渡栈),栈1为12345678910。
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 506 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号