志在指尖
用双手敲打未来

java队列(java实现队列的方法)

java队列

“队列”这个单词是英国人说的“排”。在英国“排队”的意思就是站到一排当中去。计算机科学中,队列是一种数据结构,有点类似栈,只是在队列中第一个插入的数据项也会最先被移除,而在栈中,最后插入的数据项最先移除。队列的作用就像电影院前的人们站成的排一样:第一个进入附属的人将最先到达队头买票。最后排队的人最后才能买到票。java1
在计算机中,队列和栈一样也被用作程序员的工具。它也可以用于模拟真实世界的环境,例如模拟人们在银行里排队等待,飞机等待起飞,或者因特网络上数据包等待传送。

java实现队列的方法

1.基于数组
packageAlgorithm.learn;
importjava.util.Arrays;
/**
*Createdbyliujinhongon2017/3/7.
*/
publicclassArrayQueue<E>{
Object[]queue;
intsize;
publicArrayQueue(){
queue=newObject[10];
}
publicbooleanisEmpty(){
returnsize==0;
}
publicEpoll(){
if(isEmpty())returnnull;
Edata=(E)queue[0];
System.arraycopy(queue,1,queue,0,size-1);
size--;
returndata;
}
privatevoidensureCapacity(intsize){
if(size>queue.length){
intlen=queue.length+10;
queue=Arrays.copyOf(queue,len);
}
}
publicvoidoffer(Edata){
ensureCapacity(size+1);
queue[size++]=data;
}
publicstaticvoidmain(String[]args){
ArrayQueue<Integer>queue=newArrayQueue<>();
for(inti=0;i<20;i++){
queue.offer(i);
}
for(inti=0;i<20;i++){
System.out.println(queue.poll());
}
}
}java实现队列
2.基于链表
packageAlgorithm.learn;
/**
*Createdbyliujinhongon2017/3/7.
*基于链表实现队列
*/
publicclassListQueue<E>{
classNode<E>{
Node<E>next=null;
Edata;
publicNode(Edata){
this.data=data;
}
}
privateNode<E>head=null;
privateNode<E>tail=null;
publicbooleanisEmpty(){
returnhead==null;
}
publicvoidoffer(Ee){
Node<E>node=newNode<E>(e);
if(isEmpty()){
head=node;
tail=node;
return;
}
tail.next=node;
tail=node;
}
publicEpoll(){
if(isEmpty())returnnull;
Edata=head.data;
head=head.next;
returndata;
}
publicintsize(){
Node<E>temp=head;
intlen=0;
while(temp!=null){
len++;
temp=temp.next;
}
returnlen;
}
publicstaticvoidmain(String[]args){
ListQueue<String>queue=newListQueue<>();
queue.offer("a");
queue.offer("b");
System.out.println(queue.poll());
System.out.println(queue.poll());
}
}

未经允许不得转载:IT技术网站 » java队列(java实现队列的方法)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载