public void PrintDLL()
        {
            BiDirectionalNode currNode = head;

            while (currNode != tail)
            {
                Console.WriteLine("\t{0}\t", currNode.GetData());
                currNode = currNode.GetNext();
            }
            Console.WriteLine("\t{0}\t", tail.GetData());
        }
 public void InsertNode(int data)
 {
     if (head == null)
     {
         head = new BiDirectionalNode(data);
         head.SetNext(null);
         head.SetPrev(null);
         tail = head;
     }
     else
     {
         BiDirectionalNode newNode = new BiDirectionalNode(data);
         newNode.SetPrev(tail);
         newNode.SetNext(null);
         tail.SetNext(newNode);
         tail = newNode;
     }
 }
 public void SetNext(BiDirectionalNode _next)
 {
     this.next = _next;
 }
 public void SetPrev(BiDirectionalNode _prev)
 {
     this.prev = _prev;
 }
 public BiDirectionalNode(int _data)
 {
     this.data = _data;
     this.next = null;
     this.prev = null;
 }