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

请解释是一下删除函数的思想,完全看不懂

请解释是一下删除函数的思想,完全看不懂

csh_001 2016-06-26 08:55:26
node Delete(node t,int key) /*删除函数*/{node p=t,q=NULL,s,f;while(p!=NULL) /*查找要删除的点*/{if(p->data==key) break;q=p;if(p->data>key) p=p->lchild;else p=p->rchild;}if(p==NULL) return t; /*查找失败*/if(p->lchild==NULL) /*p指向当前要删除的结点*/{if(q==NULL) t=p->rchild; /*q指向要删结点的父母*/else if(q->lchild==p) q->lchild=p->rchild; /*p为q的左孩子*/else q->rchild=p->rchild;/*p为q的右孩子*/free(p);}else{ /*p的左孩子不为空*/f=p;s=p->lchild;while(s->rchild) /*左拐后向右走到底*/{f=s;s=s->rchild;}if(f==p) f->lchild=s->lchild; /*重接f的左子树*/else f->rchild=s->lchild; /*重接f的右子树*/p->data=s->data;free (s);}return t;}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1310 浏览
慕课专栏
更多

添加回答

举报

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