public UtilList() { Head = new UtilListNode <T>(); Trail = new UtilListNode <T>(); Head.Next = Trail; Trail.Previous = Head; }
public UtilListNode <T> Enqueue(T data) { UtilListNode <T> node = new UtilListNode <T>(data); Trail.Previous.Next = node; node.Previous = Trail.Previous; node.Next = Trail; Trail.Previous = node; _count++; return(node); }
public void RemoveBefore(UtilListNode <T> node) { if (node == Head || node == Trail) { Debug.LogError("不能删除头尾哨兵"); } if (node == null) { Debug.LogError("删除目标为null"); } Head.Next = node; node.Previous = Head; }
public UtilListNode <T> Dequeue() { if (IsEmpty()) { return(null); } UtilListNode <T> node = Head.Next; UtilListNode <T> nextNode = node.Next; Head.Next = nextNode; nextNode.Previous = Head; _count--; return(node); }
public UtilListNode() { _data = default(T); _next = null; _previous = null; }
public UtilListNode(T data) { _data = data; _next = null; _previous = null; }