public void AddFirst(int x) { DoubleNode newNode = new DoubleNode(); newNode.Data = x; newNode.Next = head; newNode.Prev = null; head.Prev = newNode; head = newNode; }
public void PrintReverse() { DoubleNode current = new DoubleNode(); current = last; Console.Write("Printing Doubly Linked List in Reverse: "); while (current != null) { Console.Write("{0}, ", current.Data); current = current.Prev; } Console.WriteLine(); }
public void Print() { DoubleNode current = new DoubleNode(); current = head; Console.Write("Printing Doubly Linked List: "); while (current != null) { Console.Write("{0}, ", current.Data); current = current.Next; } Console.WriteLine(); }
public void Initialize(int x) { if (head == null) { head = new DoubleNode(); head.Data = x; head.Next = null; head.Prev = null; last = new DoubleNode(); last = head; Console.WriteLine("Initialize Doubly Linked List with head {0}", x); } }
public void DeleteNode(int x) { DoubleNode current = new DoubleNode(); current = head; DoubleNode prev = new DoubleNode(); prev = head; // =current while (current != null) { if (current.Data == x) { if (prev == head) // head { current.Next.Prev = null; head = current.Next; Console.WriteLine("Removed Head Node {0}", x); return; } else if (current == last) // last { current.Prev.Next = null; last = current.Prev; Console.WriteLine("Removed Last Node {0}", x); return; } else // node in between { prev.Next = current.Next; current.Next.Prev = prev; Console.WriteLine("Removed Node {0} in Between", x); return; } } prev = current; current = current.Next; } Console.WriteLine("Node with value {0} not found.", x); }