注册 登录
编程论坛 数据结构与算法

二叉树中插入问题???

物极必反 发布于 2012-11-21 12:50, 525 次点击
程序代码:
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树中了吗??

0 回复
1