- 实现代码
实现代码
class ArrayQueue{
//成员属性:
private int maxsize;//队列最大容量
private int front;//队列头
private int rear;//队列尾
private int[] arr;//模拟队列的数组
//构造器
public ArrayQueue(int maxsize){
//初始化成员属性
//设置最大容量
this.maxsize = maxsize;
//设置队头,指向首个有效元素之前
this.front = -1;
//设置队尾,指向最后有效元素
this.rear = -1;
//创建队列数组
arr = new int[maxsize];
}
//成员方法
//判断队列是否满
public boolean isFull() {
return rear == maxsize-1;
}
//判断队列是否为空
public boolean isEmpty(){
return front == rear;
}
//入队
public void addQueue(int val){
if(isFull()) {
System.out.println("队列已满,入队失败!");
return ;
}
rear++;//rear后移
arr[rear] = val;
}
//出队
public int getQueue() {
//先判断队列是否为空
if(isEmpty()){
System.out.println("队列为空,出队失败!");
System.exit(0);
}
//front后移
front++;
return arr[front];
}
//遍历队列所有数据
public void traverseQueue() {
//判断队列是否为空
if(isEmpty()) {
System.out.println("队列为空,遍历失败!");
System.exit(0);
}
//从队列头开始遍历
int cur = front+1;
for(int i= cur ;i<rear+1;i++){
System.out.printf("%d\t",arr[i]);
}
System.out.println();
}
//获取队列头数据,不是出队
public int headQueue(){
//判断队列是否为空
if(isEmpty()) {
System.out.println("队列为空,显示队头失败!");
System.exit(0);
}
return arr[front+1];
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)