填空题
【说明】
下面的程序构造一棵以二叉链表为存储结构的二叉树算法。
【函数】
BTCHINALR *createbt ( BTCHINALR *bt )
{
BTCHINALR *q;
struct node1 *s [30];
int j,i;
char x;
printf ( "i,x =" ); scanf ( "%d,%c",&i,&x );
while (i!=0 && x!='$')
{ q = ( BTCHINALR* malloc ( sizeof ( BTCHINALR )); //生成一个结点
{{U}} (1) {{/U}};
q->1child = NULL;
q->rchild = NULL;
{{U}}(2) {{/U}};
if({{U}} (3) {{/U}};)
{j=i/2 //j为i的双亲结点
if(i%2==0
{{U}}(4) {{/U}} //i为j的左孩子
else
{{U}} (5) {{/U}} //i为j的右孩子
}
printf ( "i,x =" ); scanf ( "%d,%c",&i,&x ); }
return s[1]
}
【正确答案】
1、q->data=x (2) s[i]=q (3) i!=1 (4) s[j]->1child=q (5) s[j]->rchild=q
【答案解析】