问题
填空题
【说明】 下面的程序构造一棵以二叉链表为存储结构的二叉树算法。 【函数】 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 )); //生成一个结点 (1) ; q->1child = NULL; q->rchild = NULL; (2) ; if( (3) ;){j=i/2 //j为i的双亲结点 if(i%2==0 (4) //i为j的左孩子 else (5) //i为j的右孩子 } printf ( "i,x =" ); scanf ( "%d,%c",&i,&x ); } return s[1] }
答案
参考答案:q->data=x (2) s[i]=q (3) i!=1 (4) s[j]->1child=q (5) s[j]->rchild=q