佇列為先進先出(FIFO)資料結構,本文示範封裝雙向鏈結清單實作佇列,提供入佇、出佇、判空、清空、計數等核心操作。
public class CQueue {
private Clist m_List; // 內部使用雙向鏈結清單
public CQueue() { m_List = new Clist(); }
// 入佇:尾部新增
public void EnQueue(int dataValue) { m_List.Append(dataValue); }
// 出佇:頭部取值並刪除
public int DeQueue() {
if (!IsNull()) {
m_List.MoveFirst();
int value = m_List.GetCurrentValue();
m_List.Delete();
return value;
}
return int.MaxValue; // 空佇列標記
}
public bool IsNull() { return m_List.IsNull(); }
public void Clear() { m_List.Clear(); }
public int QueueCount { get { return m_List.ListCount; } }
}
Append 在尾部新增節點,尾指標後移,計數 +1MoveFirst,取值 GetCurrentValue,刪除節點 Delete,頭指標後移int.MaxValue 作為特殊標記(實務建議拋出例外或使用 TryDeQueue 模式)此實作展示如何以基礎資料結構建構高階資料結構,也是 .NET Queue<T> 內部原理的簡化版本。