隊列是一種先進先出(First In First Out,簡稱FIFO)的數據結構,是在一個線性表的基礎上實現的。Java中的隊列采用了鏈式存儲結構,由前驅指針和后繼指針鏈接各節點,實現了高效的插入和刪除操作。隊列中的front
指向隊首元素,rear
指向隊尾元素。
public class Queue { private Node front; // 隊首指針 private Node rear; // 隊尾指針 // 構造函數 public Queue() { front = rear = null; } // 入隊操作 public void enqueue(int data) { Node newNode = new Node(data); if (front == null) { front = rear = newNode; } else { rear.setNext(newNode); rear = newNode; } } // 出隊操作 public int dequeue() throws Exception { if (front == null) { throw new Exception("隊列為空"); } int data = front.getData(); front = front.getNext(); return data; } }
在入隊操作中,如果隊列為空,將front
和rear
都指向新元素;如果隊列不為空,則將新元素作為rear
的后繼節點,并更新rear
指針。出隊操作中,首先判斷隊列是否為空,若為空則拋出異常;否則將隊首元素的值取出并刪除,更新front
指針即可。
上一篇java里的靜態和動態
下一篇css怎么讓div橫排