鱼C论坛

 找回密码
 立即注册
查看: 3614|回复: 0

二叉树中插入问题???

[复制链接]
发表于 2012-11-21 13:00:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


程序代码:

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[j]==p) /* j为p的序号 */
        break;
    k=2*j+1+LR; /* k为p的左或右孩子的序号 */
    if(T[k]!=Nil) /* p原来的左或右孩子不空 */
      Move(T,k,T,2*k+2); /* 把从T的k结点开始的子树移为从k结点的右子树开始的子树 */
    Move(c,i,T,k); /* 把从c的i结点开始的子树移为从T的k结点开始的子树 */
}

如果这样插入的话,T树的左/右孩子不就随着c树插入到T树中了吗??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-4 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表