package com.free;
public class Queue<E> {
private Object[] data = null;
private int maxSize; // 队列的容量
private int front; // 队列头,允许删除
private int rear; // 队列尾,允许插入
public Queue() {
this(10);
}
public Queue(int initialSize) {
if (initialSize >= 0) {
this.maxSize = initialSize;
data = new Object[initialSize];
front = rear = 0;
} else {
throw new RuntimeException("初始化大小不能为0" + initialSize);
}
}
/**
* 向队列插入数据
* @param e
* @return
*/
public boolean add(E e) {
if (rear == maxSize) {
throw new RuntimeException("队列已满,无法插入新的元素!");
} else {
data[rear++] = e;
return true;
}
}
/**
* 删除队列头部的元素:出队
* @return
*/
public E poll() {
if (this.empty()) {
throw new RuntimeException("空队列异常");
} else {
E value = (E) data[front];
data[front++] = null;
return value;
}
}
public E peek() {
if (this.empty()) {
throw new RuntimeException("空队列异常!");
} else {
return (E) data[front];
}
}
public boolean empty() {
return this.data.length == 0;
}
}
队列简单实现 - Java
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一.解法 https://leetcode-cn.com/problems/implement-stack-usi...
- 一.解法 https://leetcode-cn.com/problems/implement-queue-usi...
- 使用JAVA语言自己动手来写一个MQ (类似ActiveMQ,RabbitMQ) 主要角色 首先我们必须需要搞明白...