队列(链表实现)
2019-01-03 本文已影响7人
低吟浅唱1990
- 基于链表数据结构实现Queue,将队列表示为一条从最早插入的元素到最近插入的元素的链表,实例变量first指向队列的开头,实例变量last指向队列的结尾。
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