《演算法(第四版)》1.3佇列的連結串列實現
阿新 • • 發佈:2018-12-12
package one.three; import java.util.Iterator; public class Queue<Item> implements Iterable<Item>{ private Node first; //佇列的第一個結點 private Node last; //佇列的最後一個結點 private int N; //佇列中的元素個數 private class Node{ //定義了結點的巢狀類 Item item; Node next; } public boolean isEmpty() { //判斷佇列是否為空 return first==null; } public int size() { //返回佇列大小 return N; } public void enqueue(Item item) { //向佇列末尾新增元素 Node oldlast = last; last = new Node(); last.item = item; last.next = null; if(isEmpty()) { first = last; }else { oldlast.next = last; } N++; } public Item dequeue() { //表頭出佇列,並返回一個值 Item item = first.item; first = first.next; if(isEmpty()) { last = null; } N--; return item; } @Override public Iterator<Item> iterator() { // TODO Auto-generated method stub return null; } public static void main(String args[]) { Queue<String> q = new Queue<String>(); q.enqueue("1"); q.enqueue("2"); q.enqueue("3"); int size = q.size(); for(int i=0;i<size;i++){ System.out.println(q.dequeue()); } } }