物极必反 发表于 2012-11-21 13:00:58

二叉树中插入问题???



程序代码:

void InsertChild(SqBiTree T,TElemType p,int LR,SqBiTree c)
{ /* 初始条件:二叉树T存在,p是T中某个结点的值,LR为0或1,非空二叉树c与T不相交且右子树为空 */
    /* 操作结果: 根据LR为0或1,插入c为T中p结点的左或右子树。p结点的原有左或右子树则成为c的右子树 */
    int j,k,i=0;
    for(j=0;j<(int)pow(2,BiTreeDepth(T))-1;j++) /* 查找p的序号 */
      if(T==p) /* j为p的序号 */
      break;
    k=2*j+1+LR; /* k为p的左或右孩子的序号 */
    if(T!=Nil) /* p原来的左或右孩子不空 */
      Move(T,k,T,2*k+2); /* 把从T的k结点开始的子树移为从k结点的右子树开始的子树 */
    Move(c,i,T,k); /* 把从c的i结点开始的子树移为从T的k结点开始的子树 */
}

如果这样插入的话,T树的左/右孩子不就随着c树插入到T树中了吗??
页: [1]
查看完整版本: 二叉树中插入问题???