如果不使用"clone"操作来复制栈或队列,可以使用以下方法来实现复制:
public static Stack copyStack(Stack oldStack) {
Stack newStack = new Stack<>();
Stack tempStack = new Stack<>();
while (!oldStack.isEmpty()) {
int element = oldStack.pop();
newStack.push(element);
tempStack.push(element);
}
while (!tempStack.isEmpty()) {
oldStack.push(tempStack.pop());
}
return newStack;
}
public static Queue copyQueue(Queue oldQueue) {
Queue newQueue = new LinkedList<>();
Queue tempQueue = new LinkedList<>();
while (!oldQueue.isEmpty()) {
int element = oldQueue.poll();
newQueue.offer(element);
tempQueue.offer(element);
}
while (!tempQueue.isEmpty()) {
oldQueue.offer(tempQueue.poll());
}
return newQueue;
}
这样就可以实现不使用"clone"操作来复制栈或队列。