Exemple #1
0
        public void AddLast(T data)
        {
            var n = new DoublyLinkedListNode <T>(data);

            if (Tail != null)
            {
                Tail.Next = n;
            }

            n.Prev = Tail;
            Tail   = n;

            if (Count == 0)
            {
                Head = Tail;
            }

            Count++;
        }
Exemple #2
0
        public virtual void AddFirst(T data)
        {
            var n = new DoublyLinkedListNode <T>(data)
            {
                Next = Head
            };

            if (Head != null)
            {
                Head.Prev = n;
            }
            Head = n;

            if (Count == 0)
            {
                Tail = Head;
            }

            Count++;
        }
Exemple #3
0
        public virtual void AddBefore(DoublyLinkedListNode <T> node, T data)
        {
            if (node == null)
            {
                return;
            }

            if (node == Head)
            {
                AddFirst(data);
                return;
            }

            var newNode = new DoublyLinkedListNode <T>(data);

            node.Prev.Next = newNode;
            newNode.Next   = node;
            newNode.Prev   = node.Prev;
            node.Prev      = newNode;

            Count++;
        }
Exemple #4
0
 public DoublyLinkedListNode(T data)
 {
     Data = data;
     Next = null;
     Prev = null;
 }
Exemple #5
0
 public DoublyLinkedList()
 {
     Count = 0;
     Head  = null;
     Tail  = null;
 }
Exemple #6
0
 public void Clear()
 {
     Count = 0;
     Tail  = Head = null;
 }