Beispiel #1
0
 public void removeFirst()
 {
     if (size == 0)
     {
         throw new Exception("Количество элементов равно 0");
     }
     firstNode = firstNode.Next;
     size--;
 }
Beispiel #2
0
        public int getIndexByValue(T item)
        {
            LinkNodeOne <T> temp = firstNode;

            for (int i = 0; i < size; i++)
            {
                if (temp.Item.Equals(item))
                {
                    return(i);
                }
                temp = temp.Next;
            }
            throw new Exception("Такого элемента нет");
        }
Beispiel #3
0
        private LinkNodeOne <T> findNodeByIndex(int index)
        {
            if (index >= size)
            {
                throw new Exception("Индекс выходит за размер" + size);
            }
            LinkNodeOne <T> temp = firstNode;

            for (int i = 0; i != index; i++)
            {
                temp = temp.Next;
            }
            return(temp);
        }
Beispiel #4
0
 public void addLast(T item)
 {
     if (isEmpty() == true)
     {
         addFirst(item);
     }
     else
     {
         LinkNodeOne <T> newNode = new LinkNodeOne <T>(item);
         lastNode.Next = newNode;
         lastNode      = newNode;
     }
     size++;
 }
Beispiel #5
0
 public void removeLast()
 {
     if (size == 0)
     {
         throw new Exception("Количество элементов равно 0");
     }
     else if (size == 1)
     {
         removeFirst();
     }
     else
     {
         LinkNodeOne <T> temp = findNodeByIndex(size - 2);
         lastNode      = temp;
         lastNode.Next = null;
         size--;
     }
 }
Beispiel #6
0
 public void add(int index, T item)
 {
     if (index >= size)
     {
         throw new Exception("Индекс выходит за размер" + size);
     }
     else if (index == 0)
     {
         addFirst(item);
     }
     else
     {
         LinkNodeOne <T> newNode = new LinkNodeOne <T>(item);
         LinkNodeOne <T> temp    = findNodeByIndex(index - 1);
         newNode.Next = temp.Next;
         temp.Next    = newNode;
         size++;
     }
 }
Beispiel #7
0
 public void remove(int index)
 {
     if (index >= size)
     {
         throw new Exception("Индекс выходит за размер" + size);
     }
     else if (index == 0)
     {
         removeFirst();
     }
     else if (index == size - 1)
     {
         removeLast();
     }
     else
     {
         LinkNodeOne <T> temp = findNodeByIndex(index - 1);
         temp.Next = temp.Next.Next;
         size--;
     }
 }
Beispiel #8
0
 public int getSum()
 {
     if (size == 0)
     {
         return(0);
     }
     try
     {
         int             sum  = 0;
         LinkNodeOne <T> temp = firstNode;
         for (int i = 0; i < size; i++)
         {
             sum += Int32.Parse((temp.Item).ToString());
             temp = temp.Next;
         }
         return(sum);
     }
     catch (Exception)
     {
         return(0);
     }
 }