Java 将堆栈顶部循环移动n个元素

Java 将堆栈顶部循环移动n个元素,java,stack,Java,Stack,我正在尝试编写一个方法,该方法将堆栈的前n个元素按k个位置进行循环旋转 我可以将一维数组循环移位n个位置,但我不知道如何使用堆栈来实现 我在想,也许一个链表可能会有所帮助?您可以使用其他堆栈来跟踪前n个元素。myStack是您的原始堆栈。int n是要旋转的元素数量 public Stack rotateStack(Stack myStack, int n){ Stack firstNElements = new Stack(); Stack remainingElements = new

我正在尝试编写一个方法,该方法将堆栈的前n个元素按k个位置进行循环旋转

我可以将一维数组循环移位n个位置,但我不知道如何使用堆栈来实现


我在想,也许一个链表可能会有所帮助?

您可以使用其他堆栈来跟踪前n个元素。myStack是您的原始堆栈。int n是要旋转的元素数量

public Stack rotateStack(Stack myStack, int n){
 Stack firstNElements = new Stack();
 Stack remainingElements = new Stack();

 for(int i=0; !myStack.isEmpty() && i<n; i++){
  firstNElements.push(myStack.pop());
 }
 while(!myStack.isEmpty()){
  remainingElements.push(myStack.pop());
 }


 Stack newStack = new Stack();
 while(!firstNElements.isEmpty()){
  newStack.push(firstNElements.pop());
 } 

 while(!remainingElements.isEmpty()){
  newStack.push(remainingElements.pop());
 }

 return newStack;
}
public Stack rotateStack(Stack myStack,int n){
Stack firstneelements=新堆栈();
堆栈剩余元素=新堆栈();

对于(int i=0;!myStack.isEmpty()&&i,如果显示当前代码并解释其不起作用或无法正确解决问题的原因,这样的测试通常会做得更好-此外,请确保标题和实际问题“一致”。