Java - 如何编写一种方法将一个堆栈反转到另一个堆栈而不破坏原始堆栈?

发布于 2024-11-23 23:59:28 字数 392 浏览 1 评论 0原文

因此,我需要编写一个方法,使用 stack1.reverseStack(stack2) 将 stack1 反转到 stack2 上。我需要在不破坏 stack1 的情况下执行此操作。这就是我到目前为止所拥有的......

public void reverseStack(StackClass otherStack)
{
   int x = stackTop;

   for (int i = 0; i < x; i++)
   {
       otherStack.push(copy.top());
       copy.pop();
   }

}

它只起作用,我无法找到一种不破坏 stack1 的方法。我想过制作一个复制堆栈并使用它,但我不知道如何在方法中复制 stack1 。

So, I need to write a method to reverse stack1 onto stack2 using stack1.reverseStack(stack2). I need to do this without destroying stack1. This is what I have so far...

public void reverseStack(StackClass otherStack)
{
   int x = stackTop;

   for (int i = 0; i < x; i++)
   {
       otherStack.push(copy.top());
       copy.pop();
   }

}

It works only I can't figure out a way to not destroy stack1. I thought of making a copy stack and using that but I can't figure out how to copy stack1 in the method.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏末 2024-11-30 23:59:28

如果允许的话,你可以使用中间堆栈来做到这一点——

public void reverseStack(StackClass otherStack)
{
   StackClass newStack = new StackClass();

   StackObj obj = null;
   while ( (obj = this.pop()) != null ) {
              otherStack.push(obj);
              newStack.push(obj);
   }

   // Now push back from newStack to this stack
   while ( (obj = newStack.pop() ) != null ) {
             this.push(obj);
   }
}

You can do this using an intermediate stack if thats allowed --

public void reverseStack(StackClass otherStack)
{
   StackClass newStack = new StackClass();

   StackObj obj = null;
   while ( (obj = this.pop()) != null ) {
              otherStack.push(obj);
              newStack.push(obj);
   }

   // Now push back from newStack to this stack
   while ( (obj = newStack.pop() ) != null ) {
             this.push(obj);
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文