继上一篇之后的第二篇数据结构的文章,这篇是关于队列的实现, 队列顾名思义
类比为排队买票,先排的人先买后来的人后买
具体实现也是数组 下面是自己敲得代码 其中数组类型可泛化 为Object ,增强适用性 也可根据具体适用场景改动
其实在开发中也用到这些基础的数据结构,jdk底层有提供的实现接口,本文(同系列的文章)仅供理解底层数据结构的实现
/**
* Created by gy on 2017/8/23.
* email : guoyang000111@163.com
* 队列
*/
public class Queue {
private int array[];
private int front;//队列数组的顶部下标
private int end;//队列末下标
private int number; //计数
private int max;//队列的容器大小
public Queue(int max){
this.max=max;
array =new int[max];
front=0;end=0;number=0;
}
/**
* 插入队列
* @param value
*/
private void insert(int value){
if(isFull()){
System.out.println("队列已满!");
}else{
array[end++]=value;
number++;
}
}
/**
* 返回队列的大小
* @return
*/
private int size(){
return number;
}
/**
* 取队列的值
* @return
*/
private int remove(){
if(isEmpty()){
System.out.println("队列已空!");
return 0;
}else{
number--;
return array[front++];
}
}
/**
* 判断是否满了
* @return
*/
private boolean isFull(){
return number == max;
}
/**
* 判断是否队列为空
* @return
*/
private boolean isEmpty(){
return number == 0;
}
public static void main(String[] args) {
Queue queue=new Queue(10);
queue.insert(1);
queue.insert(2);
queue.insert(3);
queue.insert(4);
queue.insert(5);
queue.insert(6);
queue.insert(7);
int size=queue.size();
for(int i=0;i<size;i++){
System.out.println(queue.remove());
System.out.println("大小:"+queue.size());
}
}
}