关于c++栈结构算法题
英文原题:write a program to combine two stacks by placing all elements of the second stack on top of those in the first. The relative ordering of elements from the second stack is unchanged. Following the combine, the second stack is empty. (Hint: you can use push and pop methods of those stacks directly)
意思是:栈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++代码最好
雲尼斯達萊
9 years, 5 months ago
Answers
假设栈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。
3DM06
answered 9 years, 5 months ago