线性结构之一:队列
队列是一个先入先出的有序列表
数组模拟队列
用数组来模拟环形队列
属性:
队列最大容量 maxSize
队列头标记:int front
队列尾标记:int real
模拟队列的数组:int[] arr
构造器:初始化数组大小
方法;
判断队列是否空
判断队列是否满
添加数据到队列
从队列获取数据
显示队列所有数据
显示队列头的数据(不是获取)
构造器 初始化数组
package queue;
public class MyQueueInt {
private int maxSize;
private int front;
private int real;
private int[] arr;
public MyQueueInt() {
super();
}
public MyQueueInt(int maxSize) {
super();
this.maxSize = maxSize;
this.front = 0;
this.real = 0;
this.arr = new int[maxSize];
}
public int getlength() {
return front - real;
}
public boolean isFull() {
return front - real == maxSize;
}
public boolean isEmpty() {
if (real == front) {
real = front = 0;
return true;
}
return false;
}
public void add(int i) {
if (isFull()) {
System.out.println("队列已经满了!");
return;
}
int temp = front % maxSize;
arr[temp] = i;
front++;
}
public int get() {
if (isEmpty()) {
throw new RuntimeException("队列已经空了");
}
int temp = real % maxSize;
int num = arr[temp];
real++;
System.out.println("取出的值为: " + num);
return num;
}
public void gets() {
System.out.println(front);
System.out.println(real);
}
public void show() {
if (isEmpty()) {
System.out.println("空队列");
return;
}
for (int i = real; i < front; i++) {
int temp = i % maxSize;
System.out.println("temp" + temp);
System.out.println("arr" + arr[temp]);
}
}
public int showhead() {
return arr[real % maxSize];
}
}