public class MyQueue {
private Object [] queArray;
//队列大小
private int maxSize;
//前端
private int front;
//后端
private int rear;
//实际元素
private int nItems;
public MyQueue(int s) {
maxSize = s;
queArray = new Object[maxSize];
front =0;
rear = -1;
nItems = 0;
}
//队列中插入数据
public void insert(int value) {
if(isFull()) {
System.out.println("队列已满");
}else {
if(rear==maxSize-1) {
rear =-1;
}
//队尾指针加1,然后在队尾插入新得数据
queArray[++rear] = value;
nItems++;
}
}
//删除数据
public Object remove() {
Object removeValue = null;
if(!isEmpty()) {
removeValue = queArray[front];
queArray[front] = null;
front++;
if(front==maxSize) {
front =0;
}
nItems--;
}
return removeValue;
}
//输出队列中的数据
public void print() {
if(!isEmpty()) {
for(int i = front;i<=rear;i++) {
System.out.print(queArray[i]);
System.out.print(" ");
}
}
}
//查看队头数据
public Object peekFront() {
return queArray[front];
}
//判断队列是否满了
public boolean isFull() {
return (nItems==maxSize);
}
//判断队列是否为空
public boolean isEmpty() {
return (nItems==0);
}
//返回队列的大小
public int getSize() {
return nItems;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyQueue queue = new MyQueue(3);
queue.insert(1);
queue.insert(2);
queue.insert(3);
queue.print();
System.out.println();
System.out.println(queue.peekFront());
queue.remove();
queue.print();
System.out.println();
System.out.println(queue.peekFront());
queue.insert(4);
queue.insert(5);
queue.print();
}
}
队列
最新推荐文章于 2024-03-25 20:22:10 发布