第十九天算法设计
Queue 类实现:
java
package suanfa;
public class Queue
private Node
private Node
private int size; // 队列的大小
// Node 类表示队列中的一个节点
private static class Node<T> {
private T item;
private Node<T> next;
}
// 构造函数,初始化一个空的队列
public Queue() {
first = null;
last = null;
size = 0;
}
// 入队操作,将元素添加到队列的尾部
public void enqueue(T item) {
Node<T> oldLast = last;
last = new Node<>();
last.item = item;
last.next = null;
if (isEmpty()) {
first = last; // 如果队列为空,first 和 last 都指向新节点
} else {
oldLast.next = last; // 否则,将旧队列的尾部节点的 next 指向新节点
}
size++;
}
// 出队操作,从队列的头部移除元素
public T dequeue() {
if (isEmpty()) {
throw new IllegalStateException("Queue is empty");
}
T item = first.item;
first = first.next; // 将 first 指向下一个节点
if (isEmpty()) {
last = null; // 如果队列为空,last 也应该为 null
}
size--;
return item;
}
// 查看队列的头部元素,不移除
public T peek() {
if (isEmpty()) {
throw new IllegalStateException("Queue is empty");
}
return first.item;
}
// 判断队列是否为空
public boolean isEmpty() {
return size == 0;
}
// 获取队列的大小
public int size() {
return size;
}
}
QueueTest 类:
java
package suanfa;
public class QueueTest {
public static void main(String[] args) {
Queue
// 入队操作
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
// 查看队列的大小
System.out.println("队列大小: " + queue.size()); // 输出 4
// 查看队列的头部元素
System.out.println("队列头部元素: " + queue.peek()); // 输出 1
// 出队操作
System.out.println("出队元素: " + queue.dequeue()); // 输出 1
System.out.println("出队元素: " + queue.dequeue()); // 输出 2
// 查看队列的大小
System.out.println("队列大小: " + queue.size()); // 输出 2
// 查看队列的头部元素
System.out.println("队列头部元素: " + queue.peek()); // 输出 3
// 判断队列是否为空
System.out.println("队列是否为空: " + queue.isEmpty()); // 输出 false
}
}
录制: untitled2 – Insertion.java
录制文件:https://meeting.tencent.com/crm/KzGGkGE85d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本