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; }
public DoubleLinkedNode(int Data) { this.Data = Data; this.Prev = null; this.Next = null; }