为了账号安全,请及时绑定邮箱和手机立即绑定

二叉排序树删除节点只能正常删除左右子树不为空的节点

二叉排序树删除节点只能正常删除左右子树不为空的节点

慕神7194819 2016-04-23 20:03:27
int DeleteTree(BSTree &p,int height){   BSTree s,q;     if(p==NULL) { printf("没有该用户删除失败\n"); return 0; } if(!p->rchild )                              //没有右孩子 { q=p;p=p->lchild ;delete q;q=NULL; } else if(!p->lchild )                      //没有左孩子 { q=p; p=p->rchild ;delete q ;q=NULL; } else  {  s=p->lchild; q=p; while(s->rchild) { q=s; s=s->rchild ; } p->data =s->data ; if(q!=p) q->rchild =s->lchild ; else q->lchild =s->rchild ; delete s; s=NULL; }p是要删除信息的树节点这个函数只能正常删除左右孩子不为空的节点,删除其他节点我遍历输出信息会运行错误,有谁可以帮下我吗
查看完整描述

1 回答

?
BlueCitizen

TA贡献5条经验 获得超0个赞

实在看不懂这段,最好把花括号标齐,空格对上

查看完整回答
反对 回复 2016-04-25
  • 1 回答
  • 0 关注
  • 1572 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信