Queue 队列用数组实现
程序员文章站
2024-03-18 09:16:04
...
Queue 可以用数组,也可以用链表来实现
我们会有两个指针,一个指针负责添加数据,一个指针负责减少数据
注意:font 用来取数据,所以第二次取,要娶下一个
package structure;
public class QueDemo {
public static void main(String[] args) {
}
}
class Que{
private int maxSize;
private int font;
private int rear;
private int [] arr ;
public Que(int maxSize) {
font =-1;//指向队列的前一个位置。
rear = -1;//就是指向队列尾部
arr = new int[maxSize];
this.maxSize = maxSize;
}
public boolean isfull() {
return rear == maxSize-1;
}
public boolean isEmpty() {
return rear == font;
}
public void add(int num) {
if (isfull()) {
System.out.println("已满");
} else {
rear++;
arr[rear] = num;//添加的时候就是指哪添加到哪。所以是一致的。
}
}
public int get() {
if (isEmpty()) {
throw new RuntimeException("为空");
}else {
font++;
return arr[font];//因为font指向的数据被取走了。所以必须是下一个
}
}
public void show() {
if (isEmpty()) {
System.out.println("没数,怎么打印?");
return;
}else {
for (int i = 0; i < arr.length; i++) {
int i1 = arr[i];
System.out.println("i1 = " + i1);
}
}
}
public int peek(){
if (isEmpty()) {
throw new RuntimeException("没有,怎么偷看?");
} else {
return arr[font];
}
}
}
上一篇: 全排列(递归算法)
下一篇: for,while循环的特点和区别