首页 > 代码库 > 二叉搜素树
二叉搜素树
//表示节点的数据结构struct node{ int val; node *lch,*rch;};//插入数值node *insert(node *p,int x){ if(p==NULL) { node *q=new node; q->val=x; q->lch=q->rch=NULL; return q; } else { if(x<p->val) p->lch=insert(p->lch,x); else p->rch=insert(p->rch,x); return p; }}//查找数值bool find(node *p,int x){ if(p==NULL) return false; else if(x==p->val) return true; else if(x<p->val) return find(p->lch,x); else if(x>p->val) return find(p->rch,x);}//删除数值node *remove(node *p,int x){ if(p==NULL) return NULL; else if(x<p->val) p->lch=remove(p->lch,x); else if(x>p->val) p->rch=remove(p->rch,x); else if(p->lch==NULL) { node *q=p->rch; delete p; return q; } else if(p->lch->rch==NULL) { node *q=p->lch; q->rch=p->rch; delete p; return q; } else { node *q; for(q=p->lch;q->rch->rch!=NULL;q=q->rch); node *r=q->rch; q->rch=r->lch; r->lch=p->lch; r->rch=p->rch; delete p; return r; } return p;}
二叉搜素树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。