Recursive Preorder for “LISP”
Nested List Implementation
void print_preorder ( Node * n)
{
  while (n != NULL){
   if ( n->get_tag()==I ) cout << n->ival();
   else // must be the case that get_tag()==P
     print_preorder( n->pval() );
   n = n -> next;
}