java鏈表實現隊列

鏈表實現隊列,好處是可以動態增長。
上代碼:
1)、實現隊列的一個節點:
private class Node {
public T data; //節點的值
public Node next; //指向下一個節點

public Node(T data, Node next) {
this.data = data;
this.next = next;
}
}

2)、隊列構造器:
public LinkQueue() {
Node n = new Node(null, null);
n.next = null;
front = rear = n;
}

3)、入隊算法:
public void enqueue(T data) {
// 創建一個節點
Node s = new Node(data, null);
// 將隊尾指針指向新加入的節點,將s節點插入隊尾
rear.next = s;
rear = s;
size++;
}

4)、出隊算法:
public T dequeue() {
if (rear == front) {
try {
throw new Exception("堆棧爲空");
} catch (Exception e) {
e.printStackTrace();
}
return null;
} else {
// 暫存隊頭元素
Node p = front.next;
T x = p.data;
// 將隊頭元素所在節點摘鏈
front.next = p.next;
// 判斷出隊列長度是否爲1
if (p.next == null)
rear = front;
// 刪除節點
p = null;
size--;
return x;
}
}
5)、長度
public int size() {
return size;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章