填空题 【说明】 下面的程序构造一棵以二叉链表为存储结构的二叉树算法。 【函数】 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、
【正确答案】 1、q->data=x (2) s[i]=q (3) i!=1 (4) s[j]->1child=q (5) s[j]->rchild=q    
【答案解析】