下面的程序对给定的二叉树t,借助链接栈求出二叉树的深度。
这里约定:若t为空的二叉树,则树t的深度为-1。
程序中使用类型见下
Int depth-tree(t)
  NODE*t;
{SNODE.*top=NULL,*p;
int d,maxd;
maxd=d=-1;
while(       A               )
  {while(         B                 )
     {if(          C                   )maxd=d;
      p=(SNODE*)malloc(sigeof(SNODE));
      p→addr=t;
      p→dep=d;
      p→link=top;
      top=p;
       D               ;
      }
    if(   E   )
      {     F       ;
       d=top→dep;
       p=top;
       top=top→link;
       free(p);
            G   ;
       }
    }
return(maxd);
}

上面程序所使用的类性为:
ypedef struct node{char data;struck node*lchild,*rchild;}NODE;
ypedef struct snode{NODE*addr;struck snode*link;}SNODE;

请大家帮我指正一下
我的答案是:
A.t!=NULL
B.t!=NULL || top!=NULL
C.MAX<d
D.t=t->lchild;d++;
E.top!=NULL
F.t=top->addr
G.t=t->rchild