NODE *makeTree( ) /*由列表生成M叉树*/
{
int k; NODE *s ;
s = __(1)__;
s -> val = *str++ ;
for ( k = 0 ; k < M ; k++ ) s-> subTree[k] = NULL ;
if(*str=='('){
k = 0;
do
{
str++;
s -> subTree[k] = __(2)__ ;
if ( *str == ')' ) { str++; break ; }
k = k+1 ;
} while ( __(3)__ );
}
return s ;
}
void walkTree( NODE *t ) /*由 M 叉树反向输出列表*/
{
int i ;
if ( t != NULL)
{
__(4)__;
if ( t -> subTree[0] == NULL ) return ;
putchar ( '( ' ) ;
for ( i = M-1 ; i >=0 ; i--)
{
if (t->subTree != NULL )
{
__(5)__;
if ( i != 0 )
__(6)__ ;
}
}
putchar ( ') ' ) ;
}
}