对严蔚敏广义表求深度的疑问
她书上的算法是这样的。int GListDepth(GList L)
{
//采用头尾链表存储结构,求广义表L的深度
int max,dep;
GList pp;
if(!L) return 1; //空表深度为1
if(L->tag==ATOM)
return 0; //原子深度为0
for(max=0,pp=L; pp; pp=pp->a.ptr.tp)
{
dep = GListDepth(pp->a.ptr.hp);//求以pp->a.ptr.hp为头指针的子表深度
if(dep>max) max = dep;
}
return max+1;
}
结果我输入这样的广义表 "(a,(b),(c))" 结果深度得出是2, 这样的话深度应该是3吧?是不是算法有问题呢?