队列

 1 public class GenericQueue<E> {
 2     private java.util.LinkedList<E> list
 3      = new java.util.LinkedList<E>();
 4 
 5     public void enqueue(E e){
 6         list.addLast(e);
 7     }
 8     
 9     public E dequeue(){
10         return list.removeFirst();
11     }
12     
13     public int getSize(){
14         return list.size();
15     }
16     
17     public String toString(){
18         return "Queue:" + list.toString();
19     }
20 }

 用数组实现队列:

public class ArrayQueue {
    private int first, last, size;
    private Object[] storage;
    public ArrayQueue(){
    }
    public ArrayQueue(int n){
        size = n;
        storage = new Object[size];
        first = last = -1;
    }
    public boolean isFull(){
        return first == 0 && last == size - 1 || first == last + 1;
    }
    public boolean isEmpty(){
        return first  == -1;
    }
    public void enqueue(Object e1){
        if(last == size - 1 || last == -1)
        {
            storage[0] = e1;
            last = 0;
            if(first == -1)
                first = 0;
        }
        else {
            storage[++last] = e1;
        }
    }
    public Object dequeue(){
        Object tmp = storage[first];
        if(first == last)
            last = first - 1;
        else if(first == size - 1)
            first = 0;
        else first++;
        return tmp;
    }
    public void printAll(){
        for(int i = 0; i < size;i++)
            System.out.print(storage[i] + " ");
    }
}

 

posted @ 2013-11-12 14:13  soul390  阅读(115)  评论(0)    收藏  举报