在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

java实现队列queue数据结构详解

127次阅读
没有评论

共计 1844 个字符,预计需要花费 5 分钟才能阅读完成。

在 Java 中,可以使用数组或者链表来实现队列数据结构。

  1. 使用数组实现队列
  • 首先,创建一个固定大小的数组作为队列的容器。
  • 声明两个指针,一个指向队列头部(front),一个指向队列尾部(rear)。
  • 当插入一个元素时,将元素放入 rear 指针所指向的位置,并将 rear 指针向后移动一位。
  • 当删除一个元素时,将 front 指针所指向的元素删除,并将 front 指针向后移动一位。
  • 当队列为空时,front 和 rear 指针指向同一位置。
  1. 使用链表实现队列
  • 首先,创建一个链表类,包含节点类和队列类。
  • 节点类包含一个值和一个指向下一个节点的指针。
  • 队列类包含一个指向头节点的指针和一个指向尾节点的指针。
  • 当插入一个元素时,创建一个新节点,并将其放入尾节点的后面,并更新尾节点指针。
  • 当删除一个元素时,将头节点删除,并更新头节点指针。
  • 当队列为空时,头节点和尾节点指针为空。

以下是使用数组实现队列的示例代码:

public class Queue {
private int capacity; // 队列容量
private int[] data; // 存储队列元素的数组
private int front; // 队列头部指针
private int rear; // 队列尾部指针
public Queue(int capacity) {
this.capacity = capacity;
this.data = new int[capacity];
this.front = 0;
this.rear = -1;
}
public boolean isEmpty() {return (rear == -1);
}
public boolean isFull() {return (rear == capacity - 1);
}
public void enqueue(int item) {if (isFull()) {System.out.println("Queue is full, cannot enqueue item.");
return;
}
data[++rear] = item;
}
public int dequeue() {if (isEmpty()) {System.out.println("Queue is empty, cannot dequeue item.");
return -1;
}
int item = data[front++];
if (front > rear) {
front = 0;
rear = -1;
}
return item;
}
public int peek() {if (isEmpty()) {System.out.println("Queue is empty, cannot peek item.");
return -1;
}
return data[front];
}
}

使用示例:

public class Main {public static void main(String[] args) {Queue queue = new Queue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println(queue.dequeue()); // 输出 1
System.out.println(queue.peek()); // 输出 2
System.out.println(queue.isEmpty()); // 输出 false
System.out.println(queue.isFull()); // 输出 false
queue.enqueue(4);
queue.enqueue(5);
System.out.println(queue.isFull()); // 输出 true
queue.enqueue(6); // 输出 Queue is full, cannot enqueue item.
System.out.println(queue.dequeue()); // 输出 2
System.out.println(queue.dequeue()); // 输出 3
System.out.println(queue.dequeue()); // 输出 4
System.out.println(queue.dequeue()); // 输出 5
System.out.println(queue.isEmpty()); // 输出 true
System.out.println(queue.peek()); // 输出 Queue is empty, cannot peek item.
}
}

以上是使用数组实现队列的详细解释和示例代码。你也可以尝试使用链表来实现队列数据结构。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-21发表,共计1844字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 202z日本高清免费视频 | 国产区第一页 | 毛片黄色视频 | 成人在线精品 | 免费观看欧美成人禁片 | 免费99视频有精品视频高清 | 中文字幕在线视频免费观看 | 国产性做久久久久久 | 亚洲欧洲淘宝天堂日本 | 亚洲熟妇av乱码在线观看 | 亚洲国产tv| 精品无码人妻一区二区免费蜜桃 | 在线成人亚洲 | 久草在现 | 亚洲精品成人无码中文毛片 | 青青久久久国产线免观 | 中文亚洲av片在线观看 | 国产特黄1级毛片 | 欧美成人精品手机在线观看 | 岛国av动作片在线观看 | 青春草在线视频免费观看 | 女性女同性aⅴ免费观女性恋 | 欧美三级韩国三级日本一级 | 无码熟妇人妻av影音先锋 | 亚洲国产精品欧美日韩一区二区 | 亚洲精品6久久久久中文字幕 | 亚洲中文字幕第一页在线 | 天天干天 | 鲁死你av资源站 | 日本一级高清不卡视频在线 | 无码人妻精品一二三区免费 | 扒开女人内裤猛进猛出免费视频 | 手机成人在线 | 欧美肥胖老妇videos另类 | 后进式无遮挡啪啪摇乳动态图 | 亚洲精华国产精华精华液网站 | 在线观看免费亚洲 | 精品国产麻豆免费人成网站 | 成人一级片在线观看 | 精品国产福利在线观看一区 | 中文国产成人精品久久水 |