Java的鏈式佇列
阿新 • • 發佈:2018-11-19
參考https://www.cnblogs.com/lixiaolun/p/4646312.html
java實現鏈佇列的類程式碼:
1 package linkqueue; 2 3 public class LinkQueue { 4 5 class Element 6 { 7 Object elem; 8 Element next; 9 } 10 11 private Element front; 12 private Element rear; 13 privateElement header = null; 14 15 /** 16 * 初始化佇列 17 * */ 18 void initQueue() 19 { 20 header = new Element(); 21 front = new Element(); 22 rear = new Element(); 23 front=header; 24 rear=header; 25 } 26 27 /** 28 * 向佇列插入元素29 * */ 30 void enQueue(Object o) 31 { 32 Element e=new Element(); 33 e.elem=o; 34 if(rear==header)//第一次插入元素 35 { 36 rear=e; 37 header.next=e; 38 front.next=e; 39 }else 40 { 41 rear.next=e; 42 rear=e;43 } 44 } 45 46 /** 47 * 出隊 48 * */ 49 Object deQueue() 50 { 51 Object o = null; 52 if(rear==header) 53 { 54 System.out.println("佇列為空!"); 55 }else 56 { 57 o=front.next.elem; 58 if(front.next==rear)//隊中只有一個元素 59 { 60 front.next=header; 61 rear=header; 62 }else//隊中大於一個元素 63 { 64 front.next=front.next.next; 65 } 66 } 67 return o; 68 } 69 70 /** 71 * 列印佇列 72 * */ 73 void print() 74 { 75 System.out.print("列印佇列:"); 76 Element temp = front; 77 while(temp!=rear) 78 { 79 System.out.print(temp.next.elem+"\t"); 80 temp=temp.next; 81 } 82 System.out.println(); 83 } 84 }
測試類程式碼:
1 package linkqueue; 2 3 public class LinkQueueMain { 4 5 public static void main(String[] args) { 6 LinkQueue lQueue = new LinkQueue(); 7 lQueue.initQueue(); 8 System.out.println("出隊操作:"+lQueue.deQueue()); 9 lQueue.enQueue(1); 10 lQueue.enQueue(2); 11 lQueue.enQueue(3); 12 lQueue.enQueue(4); 13 lQueue.enQueue(5); 14 lQueue.print(); 15 16 System.out.println("出隊操作:"+lQueue.deQueue()); 17 System.out.println("出隊操作:"+lQueue.deQueue()); 18 lQueue.print(); 19 20 System.out.println("出隊操作:"+lQueue.deQueue()); 21 System.out.println("出隊操作:"+lQueue.deQueue()); 22 lQueue.print(); 23 24 System.out.println("出隊操作:"+lQueue.deQueue()); 25 System.out.println("出隊操作:"+lQueue.deQueue()); 26 lQueue.print(); 27 28 } 29 30 }