主题:请教一道算法填空
下面的程序对给定的二叉树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
这里约定:若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