二叉树 二叉链表 插入子树

来源:互联网  时间:2016/7/18 22:25:16

关于网友提出的“ 二叉树 二叉链表 插入子树”问题疑问,本网通过在网上对“ 二叉树 二叉链表 插入子树”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 二叉树 二叉链表 插入子树
描述:

Status InsertChild(BiTree p,int LR,BiTree c) /* 形参T无用 */
 { /* 初始条件:二叉树T存在,p指向T中某个结点,LR为0或1,非空二叉树c与T不相交且右子树为空 */
   /* 操作结果:根据LR为0或1,插入c为T中p所指结点的左或右子树。p所指结点的 */
   /*           原有左或右子树则成为c的右子树 */
   if(p) /* p不空 */
   {
     if(LR==0)
     {
       c->rchild=p->lchild;
       p->lchild=c;
     }
     else /* LR==1 */
     {
       c->rchild=p->rchild;
       p->rchild=c;
     }
     return OK;
   }
   return ERROR; /* p空 */
 }
这时我找到的二叉树,插入子树程序,问题在于执行c->rchild=p->lchild;,不就丢失c原有的右子树吗?这个程序不对啊,有没有人提供一个正确的程序?


解决方案1:

楼上说得对,如果C的右子树为空,这样做是对的。

解决方案2:

你找到的程序的前提是C的右子树为空啊?
不知你的要求是什么,插入后原子树与C之间要求的组合关系是什么,
如:是二叉排序树的插入,还是平衡二叉树的子树插入。

解决方案3:

这个可能是插入一个树结点。
而不是一颗树。
如果c已经有结点了,那c的结点和p的结点应该存在某种关系才能判断p的结点要插在c下的那个位置上。
如果没有关系,那找一个空的子结点的地方插入就可以了。

上一篇无符号整数为什么还能赋值为负数
下一篇低调,说个事儿
明星图片
相关文章
《 二叉树 二叉链表 插入子树》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)