Ejemplo n.º 1
0
 public UtilList()
 {
     Head           = new UtilListNode <T>();
     Trail          = new UtilListNode <T>();
     Head.Next      = Trail;
     Trail.Previous = Head;
 }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 5
0
 public UtilListNode()
 {
     _data     = default(T);
     _next     = null;
     _previous = null;
 }
Ejemplo n.º 6
0
 public UtilListNode(T data)
 {
     _data     = data;
     _next     = null;
     _previous = null;
 }