将堆栈的值分配给另一个堆栈

时间:2012-01-20 22:42:15

标签: c++ copy stack

我正在完成这项任务。

我需要在不初始化的情况下创建临时堆栈。

然后使用while循环将堆栈1的项目推入此临时堆栈。

然后我需要使用另一个(嵌套?)循环来遍历临时堆栈并将临时堆栈中的项添加到堆栈2上。

然后我需要将堆栈1和2设置为相等,以便堆栈2保持不变。

1 个答案:

答案 0 :(得分:2)

您的界面看起来有些偏差。让我们从那里开始,看看是否能让你超越你的驼峰。

stack.top()通常偷看某个项目,但不删除它。这对于从一个堆栈转移到另一个堆栈似乎没有用。你已经有了isEmptyStack()来检查顶部元素是否存在。

stack.pop()通常从堆栈中获取最高项。这听起来很适合转移。

stack.push(item)将项目放在堆栈顶部。这听起来很适合转移。

stack.push()似乎错了。推什么?

希望,一旦你实现了这些方法,其余的将从你提供的问题的英文描述开始有意义。

更新:这就是你想要的:

|a  |   |     |   |   |     |   |   |     |   |c  |
|b  |   |     |b  |   |     |   |b  |     |   |b  |
|c  |   |     |c  |a  |     |c  |a  |     |   |a  |
1   tmp 2     1   tmp 2     1   tmp 2     1   tmp 2

|   |   |     |   |   |     |   |   |a
|   |b  |     |   |   |b    |   |   |b
|   |a  |c    |   |a  |c    |   |   |c
1   tmp 2     1   tmp 2     1   tmp 2 

现在,只使用push,pop和IsEmptyStack,没有相互分配堆栈(这样做会破坏分配的目的),你能做到吗?