队列是一种先进先出的数据结构,是只允许在一端进行插入,另一端进行删除操作的线性表,在队尾插入,队头删除,
import java.util.Arrays; class Queue{ // 存储队列的元素 private int[] queue; // 队头 private int front; // 队尾 private int rear; // 15 public Queue() { this(15); } // 自定义队列大小 public Queue(int size) { this.queue =new int[size]; this.rear = 0; this.front = 0; } // 入队操作 public void offer(int val){ if(full()){ //如果队列满,则进行队列的扩容 this.queue = Arrays.copyOf(this.queue,this.queue.length*2); } this.queue[rear] = val; this.rear = (this.rear + 1) % this.queue.length; //循环队列 } // 出队,并把元素返回 public int poll(){ int val = queue[front]; this.front++; return val; } // 查看队头元素 public int peek(){ return this.queue[front]; } // 判断队满 public boolean full(){ return (this.rear + 1) % this.queue.length == this.front; } // 判断队空 public boolean empty(){ return rear == front; } public String toString() { String str=new String(); for(int i=0;i<this.rear;i++) { str = str + this.queue[i] + " "; } return str; } } public class QueueTest { public static void main(String[] args) { Queue queue = new Queue(); for (int i = 0; i < 20; i++) { queue.offer(i+1); } System.out.println(queue); } }
其本质仍是一个数组。