鏈表由節點組成,每個節點包含數據域與指針域。單向鏈表中兩個特殊節點:
Next指向null。/// 鏈表節點
public class ListNode
{
public ListNode(int value) => Value = value;
public ListNode Previous; // 前驅節點(雙向鏈表特有)
public ListNode Next; // 後繼節點
public int Value; // 數據域
}
注意:包含Previous指針,實為雙向鏈表節點結構。
Clistpublic class Clist
{
public Clist()
{
ListCountValue = 0;
Head = null;
Tail = null;
}
private ListNode Head; // 頭指針
private ListNode Tail; // 尾指針
private ListNode Current; // 當前指針
private int ListCountValue; // 節點計數
// 核心操作方法聲明
public void Append(int value) { /* ... */ }
public void MoveFirst() { /* ... */ }
public void MovePrevious() { /* ... */ }
public void MoveNext() { /* ... */ }
public void MoveLast() { /* ... */ }
public void Delete() { /* ... */ }
public void InsertAscending(int value) { /* ... */ }
public void InsertUnAscending(int value) { /* ... */ }
public void Clear() { /* ... */ }
public int GetCurrentValue() { /* ... */ }
}
Head/Tail/Current支援首尾快速訪問與游標式遍歷。ListCountValue實時反映節點數,支援IsNull等判斷。此為後續所有操作(移動、插入、刪除、排序)的基礎架構。