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

資料結構 (C#):循環鏈結串列設計與游標操作

     編輯:關於C語言

循環鏈結串列設計

可為單向或雙向。本實作繼承雙向鏈結串列,尾節點後繼指向頭節點。維護 m_CurrentNode 與 m_CurrentIndex 實現游標循環:

  • 到達雙向串列表尾 → 游標指向第 0 節點
  • 到達雙向串列開頭 → 游標指向尾節點

核心程式碼

public class CircularlyLinkedList<T> : DoubleLinkedList<T> {
    private DoubleLinkedListNode<T> m_CurrentNode;
    private int m_CurrentIndex;
    public int CurrentIndex { get { return m_CurrentIndex; } }
    public CircularlyLinkedList() : base() { m_CurrentNode = m_Head.Next; m_CurrentIndex = 0; }
    public CircularlyLinkedList(T t) : base(t) { m_CurrentNode = m_Head.Next; m_CurrentIndex = 0; }
    public T GetCurrent() { /* 空檢查、回傳值 */ }
    public T GetNext() { /* m_CurrentNode = m_CurrentNode.Next; 索引++; 若 null 則繞回頭節點、索引歸零 */ }
    public T GetPrevious() { /* m_CurrentNode = m_CurrentNode.Prior; 索引--; 若 null 或頭節點則繞回尾節點、索引設為 Count-1 */ }
}

結尾以經典約瑟夫問題作為應用示例(見下一篇)。

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