数据结构之基本数据结构---队列:先入先出
百度百科:
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,
队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
代码展示:
public class MyQueue { private int[] arr; // 队列的底层实现是一个数组 private int front; //队头 private int rear; //队尾 private int size; //初始化队列容量 //初始化 public MyQueue(int size){ arr=new int[size]; front=0; rear=-1; this.size=size; } //入队 public void insertQueue(int n){ if(isFull()){ System.out.println("队列已满!"); }else{ arr[++rear]=n; } } //出队 public int getQueue(){ int n; if(isEmpty()){ n=0; System.out.println("栈已空!"); }else{ n=arr[front]; front++; } return n; } //贩毒案是否为空 public boolean isEmpty(){ return front==(rear+1); } //判断是否队满 public boolean isFull(){ return (rear+1)==size; } public int getQueueLength(){ return (rear+1)-front; } public static void main(String[] args) { MyQueue myQueue=new MyQueue(10); int i=0; while(!myQueue.isFull()){ myQueue.insertQueue(++i); } System.out.println(myQueue.getQueueLength()); while(!myQueue.isEmpty()){ System.out.println(myQueue.getQueue()); } System.out.println(myQueue.getQueueLength()); } }