Esempio n. 1
0
        public void AddFirst(int x)
        {
            DoubleNode newNode = new DoubleNode();

            newNode.Data = x;
            newNode.Next = head;
            newNode.Prev = null;

            head.Prev = newNode;
            head      = newNode;
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 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);
     }
 }
Esempio n. 5
0
        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);
        }