package DataStructure;
/**
* Created with IntelliJ IDEA.
* Description:
* User: 86178
* Date: 2024-02-05
* Time: 17:00
*/
public class Queue {
public static void main(String[] args) {
QueueArr q=new QueueArr(5);
q.AddElem(12);
q.AddElem(90);
q.AddElem(45);
q.PopElem();
q.PopElem();
System.out.println(q.Peak());
q.PrintQue();
}
}
class QueueArr{
//todo 模拟实现一个队列
private int front;//指向首个元素的前一个位置
private int rear;//指向最后一个元素
private int maxSize;
private int[] qarr;
public QueueArr(int size) {
maxSize=size;
front=rear=-1;
qarr=new int[size];
}
//判断队列是否为空
boolean isEmpty(){
return rear==front;
}
//不可以从前面添加数据 rear=maxSize-1
boolean isFull(){
return rear==maxSize-1;
}
//入队
void AddElem(int x){
if(isFull()) throw new RuntimeException("队列已满");
qarr[++rear]=x;
}
//出队 并且返回队首元素
int PopElem(){
//首先判断队列是否为空
if(isEmpty()) throw new RuntimeException("队列为空");
int ret=qarr[++front];
qarr[front]=0;
return ret;
}
//仅仅返回队首元素
int Peak(){
if(isEmpty()) throw new RuntimeException("队列为空");
return qarr[front+1];
}
//显示队列信息
void PrintQue(){
System.out.println("----------------------------------------------------");
System.out.println("front="+front);
System.out.println("rear="+rear);
System.out.println("打印队列");
for(int i=front+1;i<=rear;i++){
System.out.print(qarr[i]+" ");
}
System.out.println("\n打印数组");
for(int i=0;i<maxSize;i++){
System.out.print(qarr[i]+" ");
}
System.out.println();
System.out.println("----------------------------------------------------");
}
}
尚硅谷Java数据结构--数组实现普通队列
最新推荐文章于 2024-07-21 22:27:18 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)