BiTNode *CreateTree(int a[],int n)
{
BiTNode*root,*c,*p,*pa;
int i;
root=(BiTNode*)malloc(sizeof(BiTNode));
root->data=a[0];
root->left=root->right=NULL;//建立根节点
for(i=1;i<n;i++){
p=(BiTNode*)malloc(sizeof(BiTNode));
p->data=a[i];
p->left=p->right=NULL;
c=root; //根节点给C指针
while(c){ //判断p结点属于左子树还是右子树
pa=c; //pa指针是p结点的父节点
if(c->data>p->data)
c=c->left;
else
c=c->right;
}
if(pa->data>p->data) //p结点是父节点的左孩子还是右孩子
pa->left=p;
else
pa->right=p;
}
return root;
}
while(c){ //判断p结点属于左子树还是右子树
pa=c; //pa指针是p结点的父节点
if(c->data>p->data)
c=c->left;
else
c=c->right;
}
if(pa->data>p->data) //p结点是父节点的左孩子还是右孩子
pa->left=p;
else
pa->right=p;
}
这段代码看不明白能不能,利用数组a[10]={62,88,58,47,35,73,51,99,37,93}演示以下步骤,尤其是while循环内的那段