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;
}