单选题 下面的算法实现了将二叉树中每一个结点的左右子树互换。addQ(Q,bt)为进队的函数,delQ(Q)为出队的函数,empty(Q)为判别队列是否为空的函数,空白处应填的内容是______。
typedef struct node{
int data;
struct node*lchild,*rchild;
}btnode;
void exchange(btnode *bt){
btnode *p, *q;
if(bt){
addQ(Q,bt);
while(!EMPTY(Q)){
p=delQ(Q);
q= p->rchild;
p->rchild= p->lchild;
({{U}} {{U}} {{/U}} {{/U}})=q;
if(p->lchild)
({{U}} {{U}} {{/U}} {{/U}});
if(p->rchild)addQ(Q, p->rchild);
}
}
}
  • A.p->lchild,delQ(Q,p->lchild)
  • B.p->rchild,delQ(Q,p->lchild)
  • C.p->lchild,addQ(Q,p->lchild)
  • D.p->rchild,addQ(Q,p->lchild)
【正确答案】 C
【答案解析】