
正文
java代码实现出队 java实现简单队列queue
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
高手请帮忙用java版的数据结构,设置3个队列,实现入队出队。
import java.util.ArrayList;
/**
*
* @author 狱韬
*/
public class SnakeBody {
private int size=0; //队列的长度
private int cursor=-1; //指针
private ArrayListint[] list=null; //存储器
public SnakeBody() {
list=new ArrayListint[](); //存储器
}
//返回底部的数据
public int[] getLast(){
return list.get(list.size()-1);
}
//返回顶部的数据
public int[] getFirst(){
return list.get(0);
}
//压入数据
public void put(int[] arry){
list.add(arry);
}
//删除底部数据
public void removeLast(){
list.remove(list.size()-1);
}
//重置
public void reSet(){
list=new ArrayListint[](); //存储器
}
//删除顶部数据
public void removeFirst(){
list.remove(0);
}
//返回数据长度
public int size(){
return list.size();
}
public static void main(String[] args) {
SnakeBody data = new SnakeBody();
for(int i=0;i10;i++){
data.put(new int[]{0,i});
}
System.out.println(data.getFirst()[0]+"-------"+data.getFirst()[1]);
System.out.println(data.getLast()[0]+"-------"+data.getLast()[1]);
data.removeLast();
System.out.println(data.getFirst()[0]+"-------"+data.getFirst()[1]);
System.out.println(data.getLast()[0]+"-------"+data.getLast()[1]);
}
}
相关问答
Q1: 用java实现循环队列?
简单写java代码实现出队了下java代码实现出队,希望java代码实现出队你能看明白
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");
seq.insertLast("222");
seq.insertLast("333");
System.out.println(seq.getFirst());
System.out.println(seq.getFirst());
System.out.println(seq.getFirst());
}
}
Q2: java对象从queue队列中出队,对象的一个参数变为null?
你说的是双向队列DequeE吧java代码实现出队,队列根本没有offerLast方法。
你这上下文代码也没有java代码实现出队,我只能猜测着试java代码实现出队了一下java代码实现出队:
类Para为:
运行结果:
确实是para1、para2先后出队java代码实现出队,而且也没啥null的情况发生啊。
你检查是不是入队之前那个List就有问题,它本来就是null?可以在调试模式下跟踪一下队列的情况。
另外纠正一下,啥叫对象的参数啊,我一下都没明白过来,请叫人家成员变量。
Q3: java循环对列怎么跳着出队?
没明白什么意思,是队列中的元素,隔一个出队列吗?这样的话可以用两个队列,对象先装进一个队列A,之后for遍历的时候 奇数项 拿出来 ,偶数项 放入另一个队列B,第一个队列A遍历完,将队列A当成队列B 队列B当成队列A,重复以上。其他间隔也可以自己写方法。
Q4: java写一个简单队列,有进队和出队操作,帮我检查一下程序
数据java代码实现出队的情况:
[0] [1] [2] [3] [4]
加入一个:
[0] [1] [2] [3] [4] [5]
取出一个后
[0] [1] [2] [3] [4] [5]
可以看出来,每次取出第一个,第一个元素还是没变,一直是0
要让其数据变成 [1] [2] [3] [4] [5] 那么就要自己手动变动数据(就是手动往前移动)
Q5: 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;jthis.getLength();i=(i+1)%maxsize,j++)
System.out.println(queue[i].id);
}
}
java代码实现出队的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java实现简单队列queue、java代码实现出队的信息别忘了在本站进行查找喔。







