首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 以雙向鏈結清單實作佇列:先進先出資料結構完整實作

     編輯:關於C#

佇列為先進先出(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 在尾部新增節點,尾指標後移,計數 +1
  • 出佇:移至頭部 MoveFirst,取值 GetCurrentValue,刪除節點 Delete,頭指標後移
  • 空佇列處理:回傳 int.MaxValue 作為特殊標記(實務建議拋出例外或使用 TryDeQueue 模式)

封裝優勢

  • 隱藏鏈結清單內部實作細節
  • 提供符合佇列語意的介面
  • 複用既有鏈結清單功能,減少重複程式碼

此實作展示如何以基礎資料結構建構高階資料結構,也是 .NET Queue<T> 內部原理的簡化版本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved