august 发表于 2009-9-20 01:32:35

对严蔚敏广义表求深度的疑问

她书上的算法是这样的。
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吧?是不是算法有问题呢?
页: [1]
查看完整版本: 对严蔚敏广义表求深度的疑问