用java实现循环队列?

简单写了下,希望你能看明白 import java.util.ArrayList;public class SeqQueue { ArrayList list;public SeqQueue() { list = new ArrayList();} public String getFirst() { if (!list.isEmpty()) { String s = list.get(0);list.remove(0);return s;} return null;}...
用java实现循环队列?
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(){//置空
first=last=-1;
}

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;
else return false;
}

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;
}
queue[first]=null;
first=(first+1)%maxsize;
return t;
}

public int getLength(){//队列长度
if(last>=first)return last-first+1;
else return maxsize-(first-last)+1;
}

public void display(){//打印所有元素
int i,j;
for (i=first,j=0;j<this.getLength();i=(i+1)%maxsize,j++)
System.out.println(queue[i].id);
}
}2007-10-29
简单写了下,希望你能看明白

import java.util.ArrayList;

public class SeqQueue {

ArrayList<String> list;

public SeqQueue() {
list = new ArrayList<String>();
}

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");
seq.insertLast("222");
seq.insertLast("333");
System.out.println(seq.getFirst());
System.out.println(seq.getFirst());
System.out.println(seq.getFirst());
}

}2007-11-02
你有数据结构这本书吗。自己慢慢看去。上面有的。一模一样的原题。2007-10-28
mengvlog 阅读 7 次 更新于 2025-07-19 12:23:43 我来答关注问题0
  • import java.util.ArrayList;public class SeqQueue { ArrayList list;public SeqQueue() { list = new ArrayList();} public String getFirst() { if (!list.isEmpty()) { String s = list.get(0);list.remove(0);return s;} return null;} public void insertLast(Strin...

  • 2、循环队列为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。3、存储在其中的队列称为循环队列(Circular Queue)。这种循环队列可以以单链表的方式来在实际编程应用中来实现。

  •  深空游戏 java中的循环队列front和rear指的是什么?

    在Java中的循环队列中,`front`和`rear`是两个重要的指针,它们分别指向队列的首部和尾部。`front`指针在循环队列中通常指向队列的第一个元素,也就是队列的起始位置。当我们从队列中取出元素时,`front`指针会向前移动,指向下一个待取出的元素。如果队列为空,`front`的位置将表示队列中没有元素可供...

  •  翡希信息咨询 常用数据结构:线性结构

    Java实现:Java中的Stack类提供了栈的基本操作。三、队列 定义:队列是一种特殊的线性表,其操作遵循先进先出(FIFO)的原则。队列可以用链式存储或顺序存储实现。特点:队头元素是最先插入的元素,也是最先被删除的元素。队列的操作包括入队(enqueue)和出队(dequeue)。示例图:循环队列:循环队列是一...

  • import java.util.NoSuchElementException;//通过数组来实现队列 public class ArrayQueue { //字段 public static Object[] data;//队列的元素个数 protected int size ;//队列头 protected int head;//队列尾 public static int tail;/ / //无参数构造函数 public ArrayQueue() { final int...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部