循环队列出队java代码 循环队列出队列

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数据结构中,如何遍历输出循环队列中的元素?求代码~

你说的不太清楚, 遍历队列是数组  ,集合 ,map还是其他什么

我就写个数组的给你, 你要其他的话说明白了再写

public class Test {

public static void main(String[] args) {

// 定义数组

int[] a = new int[5];

// 初始化数组

for(int i = 0; i  5; i++){

a[i] = i ;

}

// 循环输出数组

for(int i = 0; i  5; i++){

System.out.print(a[i] + "  ");;

}

}

}

java中,实现一个循环队列,其中的边界条件有些弄不明白,请看我的代码:

//我做了一个测试类,你运行一下试试吧

//问题的关键在于这个类的设计似乎是,假设size是3,但是数组的size是4

//putloc是0,但是put的位置在数组中是1

//总觉得这个类的设计很怪,既然size是3,底层实现也做成3就好了。

import java.util.Arrays;

public class CircularQueue {

private char q[];

private int putloc, getloc;

public static void main(String[] args) {

CircularQueue circularQueue = new CircularQueue(3);

circularQueue.put('1');

circularQueue.put('1');

circularQueue.put('1');

circularQueue.put('1');

}

private void paint(String s) {

System.out.println(s + ": putloc=" + putloc + " getloc=" + getloc + " "

+ Arrays.toString(q));

}

public CircularQueue(int size) {

q = new char[size + 1];// 注意:这里数组长度加 1。

putloc = getloc = 0;

paint("create!");

System.out.println();

}

public void put(char ch) {

paint("before put");

if (putloc + 1 == getloc | ((putloc == q.length - 1) (getloc == 0))) { // 第一个边界条件想不清楚,为什么putloc+1==getloc

System.out.println("--Queue is full.");

return;

}

putloc++;

if (putloc == q.length)

putloc = 0;

q[putloc] = ch;

paint("after put");

System.out.println();

}

public char get() {

paint("before get");

if (getloc == putloc) {

System.out.println("--Queue is empty.");

return (char) 0;

}

getloc++;

if (getloc == q.length)

getloc = 0;

paint("after get");

System.out.println();

return q[getloc];

}

}

用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());

}

}


网站名称:循环队列出队java代码 循环队列出队列
分享路径:http://scyanting.com/article/ddojsos.html