队列的顺序实现
Posted 肥学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列的顺序实现相关的知识,希望对你有一定的参考价值。
import java.util.*;
public class Main
public Queue InitQueue()
Queue queue=new Queue(new int[10]);
queue.front=0;
queue.rear=queue.data.length-1;//good不然会存在最后一位为空就显示栈满
return queue;
public Queue EnQueue(Queue queue,int n)
//这个判断是为了出现有出队现象导致再有数据入队时rear取余后从0下标开始
if(queue.len>=queue.data.length)
System.out.println("该队列已满!!!");
else
queue.rear=(queue.rear+1)%queue.data.length;//循环数列也是自己说的雨伞法
queue.data[queue.rear]=n;
queue.len++;
return queue;
public Queue Dequeue(Queue queue)
if(queue.len==0)
System.out.println("该队列以空!!!");
return queue;
System.out.println("队首元素"+queue.data[queue.front]+"以出队列。");
queue.front--;
queue.len--;
return queue;
public boolean isFull(Queue queue)
if(queue.len==queue.data.length)
System.out.println("已满!!");
return false;
else if(queue.len<queue.data.length)
System.out.println("未满!");
return true;
return false;
public static void main(String[] args)
Main queue=new Main();
Queue q=queue.InitQueue();
for(int i=0;i<10;i++)
queue.EnQueue(q, i+1);
queue.isFull(q);
queue.EnQueue(q, 100);
System.out.println("尾指针地址"+q.rear);
queue.Dequeue(q);
queue.EnQueue(q, 100);
System.out.println("尾指针地址"+q.rear);//证明该队列是循环的
class Queue
int data[];
int front,rear;
int len=0;
public Queue()
public Queue(int data[])
this.data=data;
以上是关于队列的顺序实现的主要内容,如果未能解决你的问题,请参考以下文章