Java 将堆栈顶部循环移动n个元素
我正在尝试编写一个方法,该方法将堆栈的前n个元素按k个位置进行循环旋转 我可以将一维数组循环移位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个元素。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,如果显示当前代码并解释其不起作用或无法正确解决问题的原因,这样的测试通常会做得更好-此外,请确保标题和实际问题“一致”。