鏈表遍歷依賴當前指針Current的移動,四大基礎操作:
/// 向後移動一個節點
public void MoveNext()
{
if (!IsEOF()) Current = Current.Next;
}
/// 向前移動一個節點
public void MovePrevious()
{
if (!IsBOF()) Current = Current.Previous;
}
/// 移動到第一個節點
public void MoveFirst() => Current = Head;
/// 移動到最後一個節點
public void MoveLast() => Current = Tail;
/// 判斷鏈表是否為空
public bool IsNull() => ListCountValue == 0;
/// 判斷是否在頭部
public bool IsBOF() => Current == Head;
/// 判斷是否在尾部
public bool IsEOF() => Current == Tail;
NullReferenceException。MovePrevious依賴Previous指針,確認此為雙向鏈表實現。Head/Tail/Current為私有字段,對外僅暴露行為方法。ListCountValue隨增刪操作同步更新,IsNull以此為依據。這組方法構成鏈表遍歷的基礎 API,上層邏輯(查找、插入、刪除、排序)均建立於此。