/// <summary> /// 移动到下一个对象 /// </summary> /// <returns></returns> public bool MoveNext() { if (current.Next == null) { return(false); } current = current.Next; return(true); }
/// <summary> /// 以0为基数,在位置i,加入对象,如果要加到队列最后,使用PushBack /// </summary> public void InsertAt(T t, int i) { var block = GetBlockAt(i); var newBlock = new LinkBlock <T>(t); newBlock.Front = block.Front; newBlock.Next = block; block.Front = newBlock; ++Count; }
private LinkBlock <T> GetBlockAt(int i) { if (i >= Count) { throw new ArgumentOutOfRangeException(); } LinkBlock <T> result = null; for (int j = 0; j <= i; ++j) { result = HiddenRoot.Next; } return(result); }
/// <summary> /// 在List尾部加入数据t /// </summary> /// <param name="t">数据</param> public void PushBack(T t) { if (Head == null) { Head = Tail = new LinkBlock <T>(t); Head.Front = HiddenRoot; HiddenRoot.Next = Head; } else { var newBlock = new LinkBlock <T>(t); newBlock.Front = Tail; Tail.Next = newBlock; Tail = newBlock; } ++Count; }
/// <summary> /// 创建LinkList实例 /// </summary> public LinkList() { HiddenRoot = new LinkBlock <T>(default(T)); current = HiddenRoot; Count = 0; }
/// <summary> /// 重置遍历 /// </summary> public void Reset() { current = HiddenRoot; }