Пример #1
0
        public void AddToFront(T item)
        {
            SinglyLinkedNode <T> newNode = new SinglyLinkedNode <T>(item, head);

            head = newNode;
            count++;
        }
Пример #2
0
        public SinglyLinkedNode <T> RemoveAfter()
        {
            SinglyLinkedNode <T> nextNode = NextNode.NextNode;

            NextNode = NextNode.NextNode;
            return(nextNode);
        }
Пример #3
0
        public SinglyLinkedNode <T> AddAfter(T item)
        {
            SinglyLinkedNode <T> newNode = new SinglyLinkedNode <T>(item);

            NextNode.Item = item;
            return(newNode);
        }
Пример #4
0
        public new void ToString()
        {
            SinglyLinkedNode <T> nodeOfi = head;

            for (int i = 0; i < count; i++)
            {
                Console.WriteLine(nodeOfi.Item);
                nodeOfi = nodeOfi.NextNode;
            }
        }
Пример #5
0
        private SinglyLinkedNode <T> getNode(int index)
        {
            SinglyLinkedNode <T> nodeOfi = head;

            for (int i = 0; i < index; i++)
            {
                nodeOfi = nodeOfi.NextNode;
            }
            return(nodeOfi);
        }
Пример #6
0
 public void AddtoEnd(T item)
 {
     if (head != null)
     {
         SinglyLinkedNode <T> lastNode = getNode(count - 1);
         SinglyLinkedNode <T> newNode  = new SinglyLinkedNode <T>(item, null);
         lastNode.NextNode = newNode;
         count++;
     }
     else
     {
         head = new SinglyLinkedNode <T>(item);
         count++;
     }
 }
Пример #7
0
 public bool removeFromFront()
 {
     if (count <= 0)
     {
         return(false);
     }
     else
     {
         if (head == null)
         {
             return(false);
         }
         head = head.NextNode;
         count--;
         return(true);
     }
 }
Пример #8
0
 public bool removeFromEnd()
 {
     if (count <= 0)
     {
         return(false);
     }
     else
     {
         SinglyLinkedNode <T> lastNode = getNode(count - 1);
         if (lastNode == null)
         {
             return(false);
         }
         SinglyLinkedNode <T> secondLastNode = getNode(count - 1);
         secondLastNode.NextNode = null;
         count--;
         return(true);
     }
 }
Пример #9
0
 public bool removeAt(int position)
 {
     if (count <= 0 || position > count)
     {
         return(false);
     }
     else
     {
         if (position > 0)
         {
             getNode(position - 1).RemoveAfter();
         }
         else
         {
             head = head.NextNode;
         }
         count--;
         return(true);
     }
 }
Пример #10
0
 public SinglyLinkedList()
 {
     head = null;
 }
Пример #11
0
 public SinglyLinkedNode(T item, SinglyLinkedNode <T> next = null)
 {
     Item     = item;
     NextNode = next;
 }