用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 阅读 29 次 更新于 2025-09-08 06:28:03 我来答关注问题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中,循环队列是一种使用有限数组来模拟队列这种先进先出(FIFO)数据结构的特殊方式。循环队列通过两个指针(或索引)来管理队列的头部(front)和尾部(rear),以高效利用数组空间,避免在队列满时因插入新元素而需要移动元素,或在队列空时因删除元素而需要特殊处理。- **front(头部指针/索引)*...

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

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

  •  驻足现下 队列存储空间Q(1:m)什么意思

    这是java语言 举个例子:就是说设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m-1,rear=m,此后再向该循环队列中插入一个元素,则队列中的元素个数为2.解析:当头指针指向m-1,尾指针指向m时,循环队列中有1个元素,此后又插入一个元素,则循环...

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

Java相关话题

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