Java实现队列及其操作
队列具有先进先出的特点,从生活中的排队问题抽象而来。
一般被限定在一端进行插入,在另一端进行服务后出队。
实现队列的过程类似于栈
先定义队列结点quenode类 包含赋值和打印操作
再定义 队列类 将quenode装在arraylist中 再实现遍历、入队、出队等的操作。
import java.util.ArrayList;
//队列的定义和基本操作
class quenode{
int val;
quenode(int val)
{
this.val=val;
}
void print()
{
System.out.print(val+"->");
}
}
public class queue {
private int top=0;
private final int Max_Size=100;
ArrayList<quenode> quelist=new ArrayList<quenode>();
void push(quenode qn)
{
if(top<Max_Size)
{
quelist.add(qn);
top++;
}
else
{
System.err.println("Push Error! No More Space!");
}
}
quenode pop()
{
if(top>0)
{
quenode temp=quelist.get(0);
quelist.remove(0);
top--;
return temp;
}
else
{
return null;
}
}
void traverse()
{
for(int i=0;i<top;i++)
{
System.out.print(quelist.get(i).val+"<-");
}
System.out.println("//Ending");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//new一个队列
queue q=new queue();
//入队操作
for(int i=0;i<5;i++)
{
q.push(new quenode(i));
}
//依次遍历队列
q.traverse();
//队头元素出队
quenode qn=q.pop();
System.out.println(qn.val);
System.out.println(q.pop().val);
}
}