首页 > 代码库 > 二叉树插入操作
二叉树插入操作
/*功能:将一个节点插入到二叉树中节点的子节点中输入: p,c ,RL p:节点将插入到p所指向的节点的子节点中 c:指向待插入的节点 RL:为0表示插入到左子树,为1表示插入到右子树输出:bool*/template<typename T>bool BinaryTree<T>::InsertChild(BTNode<T> *p,BTNode<T> *c,int RL){ if(p) { if(RL==0) //插入到p的左节点 { c->rchild=p->lchild;//p节点原有的左子树成为c的右子树 p->lchild=c;//c成为p的左子树 } else { c->rchild=p->rchild; p->rchild=c; } return true; } else return false;}
如下有一个二叉树和一个节点,其中p指向节点2,c指向节点6。现在需要将c插入到p的左子树中。
RL为0,c的右子结点指针(本来指向NULL)指向 p的左子节点(4)
将指向p左子节点的指针 指向c所指向的节点(6)
插入子节点完成
另一种实现形式:
template<typename T>bool BinaryTree<T>::InsertChild(T e,T c,int RL){ BTNode<T> *pe,*pc; pe=SearchNode(e); if(pe) { pc=new BTNode<T>; pc->data=http://www.mamicode.com/c; pc->lchild=NULL; pc->rchild=NULL; if(RL==0) { pc->rchild=pe->lchild; pe->lchild=pc; } else { pc->rchild=pe->rchild; pe->rchild=pc; } return true; } cout<<"结点"<<e<<"不存在"<<endl; return false;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。