这里说下我的思路.循环队列.首先你要想清楚队列.队列有多种实现方式.链表和数组.
如果是固定的个数那可以用数组实现否则用双向循环链表实现. 具体说实现方式可以参考link list或arrayDequeue
简单写了下,希望你能看明白
import java.util.ArrayList;
public class SeqQueue {
ArrayListString list;
public SeqQueue() {
list = new ArrayListString();
}
public String getFirst() {
if (!list.isEmpty()) {
String s = list.get(0);
list.remove(0);
return s;
return null;
public void insertLast(String s) {
list.add(s);
public static void main(String[] args) {
SeqQueue seq = new SeqQueue();
seq.insertLast("111");
System.out.println(seq.getFirst());
class Element{
int id;
String name;
Element(int a,String n){
id=a;name=n;
class SeqQueue{
int first,last,maxsize;
Element queue[];
SeqQueue(int i){
maxsize=i;
first=last=-1;
queue=new Element[i];
public void clear(){//置空
public boolean isEmpty(){//判空
if(first==-1)return true;
else return false;
public Element getFirst(){//取队列头元素
if(first==-1)return null;
else return queue[first+1];
public boolean isFull(){//判满
if((last+1)%maxsize==first)return true;
public boolean enQueue(Element e){//入队
if(this.isFull())return false;
if(this.isEmpty())
first=last=0;
else
last=(last+1)%maxsize;
queue[last]=e;
return true;
public Element deQueue(){//出队
Element t=queue[first];
if(this.isEmpty())return null;
if(first==last){
queue[first]=null;
this.clear();
return t;
first=(first+1)%maxsize;
public int getLength(){//队列长度
if(last=first)return last-first+1;
else return maxsize-(first-last)+1;
int i,j;
for (i=first,j=0;jthis.getLength();i=(i+1)%maxsize,j++)
System.out.println(queue[i].id);
以上就是土嘎嘎小编为大家整理的Java代码实现循环队列相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!