public void InsertFirst(int Data)
        {
            DoubleLinkedNode NewNode = new DoubleLinkedNode(Data);

            if (Head == null)
            {
                Head = NewNode;
            }
            else
            {
                Head.Prev      = NewNode;
                NewNode.Next   = Head;
                LastNodeInList = Head;
                Head           = NewNode;
            }
        }
        public void InsertLast(int Data)
        {
            DoubleLinkedNode NewNode = new DoubleLinkedNode(Data);

            if (Head == null)
            {
                Head = NewNode;
            }
            else
            {
                DoubleLinkedNode LastNode = GetLastNode();
                NewNode.Prev   = LastNode;
                LastNode.Next  = NewNode;
                LastNodeInList = NewNode;
            }
        }
 public DoubleLinkedList(int[] Nums)
 {
     if (Nums.Length > 0)
     {
         DoubleLinkedNode NewNode = new DoubleLinkedNode(Nums[0]);
         Head           = NewNode;
         LastNodeInList = Head;
         if (Nums.Length > 1)
         {
             for (int i = 1; i < Nums.Length; i++)
             {
                 InsertLast(Nums[i]);
             }
         }
     }
 }
        public bool DoesKeyExist(int Data)
        {
            DoubleLinkedNode TempHead = Head;

            while (TempHead.Data != Data)
            {
                if (TempHead.Next != null)
                {
                    TempHead = TempHead.Next;
                }
                else
                {
                    return(false);
                }
            }
            return(true);
        }
 public void DisplayAllNodes(DoubleLinkedNode Node)
 {
     if (Node == null)
     {
         Console.Write("Node is empty");
     }
     else
     {
         Console.Write($"{Node.Data}");
         if (Node.Next != null)
         {
             Console.Write($", ");
             DisplayAllNodes(Node.Next);
         }
         else
         {
             Console.Write("\n");
         }
     }
 }
 public void DeleteNode(DoubleLinkedNode Node)
 {
     if (Node.Prev != null && Node.Next != null)
     {
         Node.Prev.Next = Node.Next;
         Node.Next.Prev = Node.Prev;
     }
     if (Node.Prev != null && Node.Next == null)
     {
         Node.Prev.Next = null;
     }
     if (Node.Prev == null && Node.Next != null)
     {
         Node.Next.Prev = null;
         Head           = Node.Next;
     }
     if (Node.Prev == null && Node.Next == null)
     {
         Head = null;
     }
 }
        public int ShowFirstUnique()
        {
            DoubleLinkedNode TempNode = MyList.Head;

            Unique = new Dictionary <int, bool>();
            bool KeepRunning = true;

            while (KeepRunning)
            {
                if (Unique.ContainsKey(TempNode.Data))
                {
                    Unique[TempNode.Data] = false;
                }
                else
                {
                    Unique.Add(TempNode.Data, true);
                }

                if (TempNode.Next == null)
                {
                    KeepRunning = false;
                }
                else
                {
                    TempNode = TempNode.Next;
                }
            }

            foreach (KeyValuePair <int, bool> Number in Unique)
            {
                if (Number.Value == true)
                {
                    return(Number.Key);
                }
            }
            return(-1);
        }
 public DoubleLinkedList(DoubleLinkedNode Node)
 {
     Head           = Node;
     LastNodeInList = Head;
 }
Пример #9
0
 public DoubleLinkedNode(int Data)
 {
     this.Data = Data;
     this.Prev = null;
     this.Next = null;
 }