Beispiel #1
0
 public bool DeleteFirstN(uint N)
 {
     if (First == null || Count < N)
     {
         return(false);
     }
     else
     {
         try
         {
             DLElement <T> Search = First;
             for (int i = 0; i < N; i++)
             {
                 Search = Search.Next;
             }
             First          = Search;
             First.Previous = null;
             return(true);
         }
         catch
         {
             return(false);
         }
     }
 }
Beispiel #2
0
 public bool RemoveFirst()
 {
     if (First == null)
     {
         return(false);
     }
     else
     {
         First          = First.Next;
         First.Previous = null;
         return(true);
     }
 }
Beispiel #3
0
 public void Add(T newValue)
 {
     if (!CanAdd())
     {
         return;
     }
     if (First == null)
     {
         First = new DLElement <T>(newValue, null, First);
     }
     else
     {
         LastElement.Next = new DLElement <T>(newValue, LastElement, LastElement.Next);
     }
 }
Beispiel #4
0
 private DLElement <T> Last()
 {
     if (First == null)
     {
         return(null);
     }
     else
     {
         DLElement <T> Search = First;
         while (Search.Next != null)
         {
             Search = Search.Next;
         }
         return(Search);
     }
 }
Beispiel #5
0
 public bool Remove(T toFind)
 {
     if (First == null)
     {
         return(false);
     }
     else
     {
         DLElement <T> Search = First;
         while (!(toFind.Equals(Search.Next.Value)))
         {
             Search.Next          = Search.Next.Next;
             Search.Next.Previous = Search;
             return(true);
         }
         return(false);
     }
 }
Beispiel #6
0
        private uint Counter()
        {
            uint x = 0;

            if (First == null)
            {
                return(x);
            }
            else
            {
                DLElement <T> search = First;
                while (search != null)
                {
                    search = search.Next;
                    x++;
                }
                return(x);
            }
        }
Beispiel #7
0
 public DLElement <T> Indexing(int i)
 {
     if (First == null)
     {
         return(null);
     }
     else
     {
         DLElement <T> Search = First;
         for (uint x = 0; x <= i; x++)
         {
             Search = Search.Next;
             if (x == i)
             {
                 return(Search);
             }
         }
         return(null);
     }
 }
Beispiel #8
0
 public bool Contains(T SearchValue)
 {
     if (First == null)
     {
         return(false);
     }
     else
     {
         DLElement <T> Search = First;
         while (Search != null)
         {
             if (Search.Value.Equals(SearchValue))
             {
                 return(true);
             }
             Search = Search.Next;
         }
         return(false);
     }
 }
Beispiel #9
0
 public int IndexOf(T SearchValue)
 {
     if (First == null)
     {
         return(0);
     }
     else
     {
         int           x      = 1;
         DLElement <T> Search = First;
         while (Search != null)
         {
             if (Search.Value.Equals(SearchValue))
             {
                 return(x);
             }
             Search = Search.Next;
             x++;
         }
         return(0);
     }
 }
Beispiel #10
0
 public void Clear()
 {
     First = null;
 }
Beispiel #11
0
 public void AddFirst(T newValue)
 {
     First = new DLElement <T>(newValue, null, First);
 }
Beispiel #12
0
 public DLList(uint x = 0)
 {
     First   = null;
     Limiter = x;
 }
Beispiel #13
0
 public DLElement(T newValue, DLElement <T> previousElement = null, DLElement <T> nextElement = null)
 {
     Value    = newValue;
     Previous = previousElement;
     Next     = nextElement;
 }