示例#1
0
        public void AddLast(T element)
        {
            Node <T> cursor  = tail;
            Node <T> newNode = new Node <T>(element);

            newNode.setnext(cursor);
            newNode.setprev(cursor.getprev());
            cursor.setprev(newNode);
            cursor.getprev().setnext(newNode);
            length++;
        }
示例#2
0
        public void Clear()
        {
            Node <T> cursor = tail;
            int      index  = length;

            for (int i = 0; i < index; i++)
            {
                cursor = cursor.getnext();
                cursor.getnext().setprev(cursor.getprev());
                cursor.getprev().setnext(cursor.getnext());
                length--;
            }
        }
示例#3
0
 public T RemoveLast()
 {
     if (length == 0)
     {
         throw new NotImplementedException();
     }
     else
     {
         Node <T> cursor = tail;
         Node <T> result = cursor.getprev();
         result.getnext().setprev(result.getprev());
         result.getprev().setnext(result.getnext());
         length--;
         return(result.getelement());
     }
 }
示例#4
0
 public T RemoveFirst()
 {
     if (length == 0)
     {
         throw new InvalidOperationException();
     }
     else
     {
         Node <T> cursor = head;
         Node <T> result = cursor.getnext();
         result.getnext().setprev(result.getprev());
         result.getprev().setnext(result.getnext());
         length--;
         return(result.getelement());
     }
 }
示例#5
0
        public int RemoveAll(T element)
        {
            Node <T> cursor = tail;
            int      index  = length;
            int      number = 0;

            for (int i = 0; i < index; i++)
            {
                cursor = cursor.getnext();
                if (EqualityComparer <T> .Default.Equals(cursor.getelement(), (element)))
                {
                    cursor.getnext().setprev(cursor.getprev());
                    cursor.getprev().setnext(cursor.getnext());
                    length--;
                    number++;
                }
            }
            return(number);
        }
示例#6
0
        public bool Remove(T element)
        {
            Node <T> cursor   = tail;
            int      index    = length;
            bool     retValue = false;

            for (int i = 0; i < index; i++)
            {
                cursor = cursor.getnext();
                if (EqualityComparer <T> .Default.Equals(cursor.getelement(), (element)))
                {
                    cursor.getnext().setprev(cursor.getprev());
                    cursor.getprev().setnext(cursor.getnext());
                    length--;
                    retValue = true;
                    break;
                }
            }
            return(retValue);
        }