代码如下,主要注意变量的初始值,满的条件,以及null的条件。
package a;
import java.util.Scanner;
public class QueDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String next = scanner.next();
System.out.println(next);
}
class QuePlus{
private int maxsize;
private int front;
private int rear;//因为这两个值默认就是0,就不初始化了。 从0开始主要还是为了配合取模的使用。
private int[] arr;
public QuePlus(int maxsize) {
this.maxsize = maxsize;
arr = new int[maxsize];
}
public boolean isFull() {
return (rear+1)%maxsize == front; //看看下一个是不是已经和第一个重合了。
//因为下标是从0 开始的 所以直接可以取值了
}
public void add(int val) {
arr[rear] = val;
rear=(rear+1)%maxsize;
}
public int get(){
int val = arr[front];
front = (front + 1) % maxsize;
return val;
}
public boolean isEmp(){
return rear == front;
}
public void show() {//也就是从front开始有数据。
for (int i = front; i <front+ size(); i++) {
System.out.printf("arr[%d]=%d",i%maxsize,arr[i%maxsize]);
int i1 = arr[i];
}
}
public int size(){
return (rear+maxsize-front)%maxsize;//如果rear小于front 那么证明我们之前%过maxsize 所以反过来。就要+maxsize
}
}
}
683

被折叠的 条评论
为什么被折叠?



