int Depth ( GList ls ) |
{ |
if ( !ls ) |
return 1; /*空表深度为1*/ |
if ( ls->tag = = 0 ) |
return 0; /*单元素深度为0*/ |
for ( max = 0,p = ls; p; p = p->ptr.tp ) |
{ |
dep = Depth ( p->ptr.hp ); /*求以p->ptr.hp 尾头指针的子表深度*/ |
if ( dep > max ) max = dep; |
} |
return max+1; /*非空表的深度是各元素的深度的最大值加1*/ |
} |