数组实现方法:
package java程序员面试笔试宝典;
import java.util.LinkedList;
public class Queue<E>{
LinkedList<E> list=new LinkedList<E>();
public boolean isEmpty(){
return list.size()==0;
}
public int size(){
return list.size();
}
public void put(E data){
list.add(data);
}
public E pop(){
E data=list.remove(0);
return data;
}
public static void main(String[] args) {
Queue<Integer> q=new Queue<Integer>();
q.put(1);
q.put(2);
q.put(3);
System.out.println(q.pop());
System.out.println(q.pop());
//System.out.println(q.pop());
System.out.println(q.isEmpty());
System.out.println(q.size());
}
}
链表实现方法:
package java程序员面试笔试宝典;
class Node2<E>{
Node2<E> next=null;
E data;
public Node2(E data){
this.data=data;
}
}
public class MyQueue<E> {
//链表实现方式
Node2<E> head=null;
Node2<E> tail=null;
int size=0;
public boolean isEmpty(){
return head==tail&&head==null;
}
public int size(){
return size;
}
public void put(E data){
Node2<E> newNode=new Node2<E>(data);
if(isEmpty()){
head=tail=newNode;
}else{
tail.next=newNode;
tail=newNode;
}
size++;
}
public E pop(){
E data=head.data;
if(isEmpty()){
return null;
}else{
head=head.next;
size--;
}
return data;
}
public static void main(String[] args) {
MyQueue<Integer> myQueue=new MyQueue<Integer>();
System.out.println(myQueue.isEmpty());
System.out.println(myQueue.size());
myQueue.put(1);
myQueue.put(2);
myQueue.put(3);
System.out.println(myQueue.size());
System.out.println(myQueue.pop());
System.out.println(myQueue.size());
}
}