public static void Init()
        {
            head          = new NodeTWC("A");
            head.next     = null;
            head.previous = null;

            NodeTWC nodeB = new NodeTWC("B");

            nodeB.previous = head;
            nodeB.next     = null;
            head.next      = nodeB;

            NodeTWC nodeC = new NodeTWC("C");

            nodeC.next     = null;
            nodeC.previous = nodeB;
            nodeB.next     = nodeC;

            // The last node call tail node
            tail          = new NodeTWC("D");
            tail.next     = head;
            tail.previous = nodeC;
            nodeC.next    = tail;
            head.previous = tail;
        }
        public static void Insert(int insertPosition, NodeTWC newNode)
        {
            NodeTWC p = head;
            int     i = 0;

            while (p.next != null && i < (insertPosition - 1))
            {
                p = p.next;
                i++;
            }
            newNode.next          = p.next;
            p.next                = newNode;
            newNode.previous      = p;
            newNode.next.previous = newNode;
        }
        public static void Remove(int removePosition)
        {
            NodeTWC p = head;
            int     i = 0;

            while (p.next != null && i < (removePosition - 1))
            {
                p = p.next;
                i++;
            }
            NodeTWC temp = p.next;

            p.next          = p.next.next;
            p.next.previous = p;
            temp.next       = null;
            temp.previous   = null;
        }
        public static void Print()
        {
            NodeTWC p = head;

            do
            {
                Console.WriteLine($"->{p.data}");
                p = p.next;
            } while (p != head);
            Console.WriteLine($"{p.data} END");

            p = tail;
            do
            {
                Console.WriteLine($"->{p.data}");
                p = p.previous;
            } while (p != tail);
            Console.WriteLine($"{p.data} END");
        }