Sie sind auf Seite 1von 1

Huallpa Quentasi Juan Carlos 1 Eliminar un dato determinado en un rbol binario

Funcin eliminar en un rbol Binario

void Eliminar(int x){ Nodo p=null,q=raiz,r; while(q!=null&&q.info!=x){ p=q; if(x>q.info) q=q.dcha; else q=q.izda; } if(q!=null){ if(q==raiz){ if(q.dcha!=null){ q=q.dcha; while(q.izda!=null){ q=q.izda; } r=raiz.dcha; p=raiz.izda; q.izda=p; raiz=r; } else{ raiz=raiz.izda; } } else{ if(q.dcha==null&&q.izda==null){ if(p.izda.info==x) p.izda=null; else p.dcha=null; } else{ if(p.izda==q){ p.izda=q.dcha; q=q.izda; r=p.izda; if(r!=null){ while(r.izda!=null) r=r.izda; r.izda=q; } else{ p.izda=q; } } else{ p.dcha=q.dcha; q=q.izda; r=p.dcha; if(r!=null){ while(r.izda!=null) r=r.izda; r.izda=q; } else{ p.dcha=q; } } } } } }

Das könnte Ihnen auch gefallen