示例#1
0
        public object RemoveBack()
        {
            if (Length == 0)
            {
                throw new Exception("List is empty");
            }

            object data = LastNode.Data;

            if (FirstNode == LastNode)
            {
                FirstNode = LastNode = null;
                Length--;
            }
            else
            {
                CustomNode curr = FirstNode;
                while (curr.Next != LastNode)
                {
                    curr = curr.Next;
                }

                LastNode      = curr;
                LastNode.Next = null;
                Length--;
            }
            return(data);
        }
示例#2
0
 public void InsertBack(object node)
 {
     if (Length == 0)
     {
         FirstNode = LastNode = new CustomNode(node);
         Length++;
     }
     else
     {
         LastNode = LastNode.Next = new CustomNode(node);
         Length++;
     }
 }
示例#3
0
 public void InsertFront(object node)
 {
     if (Length == 0)
     {
         FirstNode = LastNode = new CustomNode(node);
         Length++;
     }
     else
     {
         CustomNode prevFirstNode = FirstNode;
         FirstNode      = new CustomNode(node);
         FirstNode.Next = prevFirstNode;
         Length++;
     }
 }
示例#4
0
 public void Print()
 {
     if (Length == 0)
     {
         Console.WriteLine("List is empty");
     }
     else
     {
         CustomNode curr = FirstNode;
         while (curr != null)
         {
             Console.Write($" {curr.Data} |");
             curr = curr.Next;
         }
         Console.Write("\n");
     }
 }
示例#5
0
        public object RemoveFront()
        {
            if (Length == 0)
            {
                throw new Exception("List is empty");
            }

            object data = FirstNode.Data;

            if (FirstNode == LastNode)
            {
                FirstNode = LastNode = null;
                Length--;
            }
            else
            {
                FirstNode = FirstNode.Next;
                Length--;
            }
            return(data);
        }
示例#6
0
 public CustomLinkedList()
 {
     FirstNode = LastNode = null;
     Length    = 0;
 }