队列(链表实现)

2019-01-03  本文已影响7人  低吟浅唱1990
public class Queue<Item> {
    
    private Node<Item> first;
    private Node<Item> last;
    private int N;
    
    public boolean isEmpty(){
        return first == null;
    }
    
    public int  size() {
        return N;
    }
    
    public void enqueue(Item item) {
        Node<Item> oldlast = last;
        last = new Node<>();
        last.item = item;
        last.next = null;
        if (isEmpty()) {
            first = last;
        }else{
            oldlast.next  = last;
        }
        N++;
    }
    
    public Item dequeue() {
        if (isEmpty()) {
            last = null;
            return null;
        }
        Item item = first.item;
        first = first.next;
        N--;
        return item;
    }
    

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Queue<String> queue = new Queue<>();
        queue.enqueue("to");
        queue.enqueue("be");
        queue.enqueue("or");
        System.out.println(queue.dequeue());
        System.out.println(queue.dequeue());
        System.out.println(queue.dequeue());
        System.out.println(queue.dequeue());
    }

}

//-------
to
be
or
null
上一篇 下一篇

猜你喜欢

热点阅读