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 回答
- 0 关注
- 1572 浏览
添加回答
举报
0/150
提交
取消