分享时间:2023-03-23 10:49:00
数据来源:网络
提取密码:在线浏览
文件类型:文章
// 定义 CQueue 类
class CQueue {
private Stack<Integer> stackIn; // 定义一个进队列的栈
private Stack<Integer> stackOut; // 定义一个出队列的栈
// 构造函数,新建进队列栈和出队列栈
public CQueue() {
stackIn = new Stack<>();
stackOut = new Stack<>();
}
// 在队列末尾添加数值(进队列)的方法,将元素压入进队列栈中
public void appendTail(int value) {
stackIn.push(value);
}
// 删除队列头元素(出队列)的方法
public int deleteHead() {
// 如果出队列栈不为空,则直接弹出元素
if (!stackOut.isEmpty()) {
return stackOut.pop();
}
// 如果进队列栈也为空,则队列已空,返回 -1
if (stackIn.isEmpty()) {
return -1;
}
// 如果出队列栈为空,但是进队列栈不为空,则需要将进队列栈中的元素倒入出队列栈中
while (!stackIn.isEmpty()) {
stackOut.push(stackIn.pop()); // 出队列栈底为队列头元素,将元素压入出队列栈
}
return stackOut.pop(); // 返回出队列栈顶元素
}
}
每次写算法题都会感谢chatgpt