/**
* @author zhangxh
* @since 1.0
*/
public class Queue<T> {
//队首为第一个元素的位置,队尾为下一个元素的位置
private int front;
private int rear;
private int max_size = 16;
private Object[] data;
public Queue() {
this(5);
}
public Queue(int size) {
if (size < 0) {
throw new IllegalArgumentException("初始化队列失败,size不合法" + size);
}
this.max_size = size;
front = rear = 0;
data = new Object[max_size];
}
public boolean isEmpty() {
return front == rear ? true : false;
}
public boolean enQueue(T t){
if (rear == max_size){
throw new IllegalArgumentException("队列已满");
}
data[rear] = t;
rear++;
return true;
}
/**
* 出队列
* 显示删除队首元素,然后队首序列+1
* @return
*/
public T deQueue (){
if (isEmpty()){
throw new IllegalArgumentException("队列为空");
}
T a = (T)data[front];
data [front++] = null;
return a ;
}
public int getLength(){
return rear- front;
}
//测试代码
public static void main(String[] args) {
Queue queue = new Queue();
queue.enQueue("h");
queue.enQueue("e");
queue.enQueue("l");
queue.enQueue("l");
queue.enQueue("o");
System.out.println(queue.getLength());
int length = queue.getLength();
for(int i=0;i<length;i++) {
System.out.println(queue.deQueue());
}
System.out.println(queue.getLength());
}
}
java实现队列
最新推荐文章于 2025-12-11 22:46:37 发布
本文介绍了一个使用Java泛型实现的队列数据结构,包括队列的基本操作如入队、出队、判断队列是否为空及获取队列长度。通过具体示例展示了队列的使用方法。
1468

被折叠的 条评论
为什么被折叠?



