先進先出 (FIFO),如同排隊。操作:入隊、出隊、取得隊頭/隊尾、長度、是否為空。
不宜用順序表實作(插入/刪除會導致大量元素移動),以單向鏈結串列實作較佳。
namespace Xianfen.Net.DataStructure {
public class Queue<T> {
protected SingleLinkedList<T> m_List;
public bool IsEmpty { get { return m_List.IsEmpty; } }
public int Count { get { return m_List.Count; } }
public Queue() { m_List = new SingleLinkedList<T>(); }
public Queue(T t) { m_List = new SingleLinkedList<T>(t); }
public T DeQueue() { T t = m_List.GetTail(); m_List.RemoveTail(); return t; }
public void EnQueue(T t) { m_List.AddHead(t); }
public T GetFront() { return m_List.GetTail(); }
public T GetRear() { return m_List.GetHead(); }
}
}
注意:EnQueue 對應 AddHead(隊頭),DeQueue 對應 GetTail/RemoveTail(隊尾),實為以單向鏈結串列反向操作模擬佇列。