public void SetRaiz(NodoArbol aux) { this.raiz = aux; }
public bool EliminarUsuario(string pnickname) { if (!ArbolVacio()) { if (ExisteUsuario(pnickname)) { NodoArbol padre = null; NodoArbol aux = this.raiz; while (aux != null) { if (aux.GetNickname().CompareTo(pnickname) > 0) { padre = aux; aux = aux.GetHijoIzquierdo(); } else if (aux.GetNickname().CompareTo(pnickname) < 0) { padre = aux; aux = aux.GetHijoDerecho(); } else { if (aux.GetHijoIzquierdo() == null && aux.GetHijoDerecho() == null)//caso que no tenga hijos { if (padre == null) { this.SetRaiz(null); } else { if (padre.GetHijoIzquierdo() == aux) { padre.SetHijoIzquierdo(null); } else if (padre.GetHijoDerecho() == aux) { padre.SetHijoDerecho(null); } aux = null; } } else if (aux.GetHijoIzquierdo() == null || aux.GetHijoDerecho() == null) { if (padre != null) { if (padre.GetHijoDerecho() == aux) { if (aux.GetHijoDerecho() != null) { padre.SetHijoDerecho(aux.GetHijoDerecho()); aux.SetHijoDerecho(null); } else if (aux.GetHijoIzquierdo() != null) { padre.SetHijoDerecho(aux.GetHijoIzquierdo()); aux.SetHijoIzquierdo(null); } } else if (padre.GetHijoIzquierdo() == aux) { if (aux.GetHijoDerecho() != null) { padre.SetHijoIzquierdo(aux.GetHijoDerecho()); aux.SetHijoDerecho(null); } else if (aux.GetHijoIzquierdo() != null) { padre.SetHijoIzquierdo(aux.GetHijoIzquierdo()); aux.SetHijoIzquierdo(null); } } aux = null; } else { if (aux.GetHijoDerecho() != null) { this.raiz = aux.GetHijoDerecho(); } else if (aux.GetHijoIzquierdo() != null) { this.raiz = aux.GetHijoIzquierdo(); } aux = null; } } else { NodoArbol hijoaux = aux.GetHijoDerecho(); NodoArbol padrehijoaux = null; while (hijoaux.GetHijoIzquierdo() != null) { padrehijoaux = hijoaux; hijoaux = hijoaux.GetHijoIzquierdo(); } if (hijoaux.GetHijoDerecho() != null && padrehijoaux != null) { padrehijoaux.SetHijoIzquierdo(hijoaux.GetHijoDerecho()); } else if (padrehijoaux != null) { padrehijoaux.SetHijoIzquierdo(null); } if (padre != null) { if (padre.GetHijoIzquierdo() == aux) { if (aux.GetHijoDerecho() != hijoaux) { hijoaux.SetHijoDerecho(aux.GetHijoDerecho()); } hijoaux.SetHijoIzquierdo(aux.GetHijoIzquierdo()); padre.SetHijoIzquierdo(hijoaux); aux.SetHijoDerecho(null); } else if (padre.GetHijoDerecho() == aux) { hijoaux.SetHijoIzquierdo(aux.GetHijoIzquierdo()); if (aux.GetHijoDerecho() != hijoaux) { hijoaux.SetHijoDerecho(aux.GetHijoDerecho()); } padre.SetHijoDerecho(hijoaux); aux.SetHijoDerecho(null); } aux = null; } else { if (aux.GetHijoDerecho() == hijoaux) { hijoaux.SetHijoIzquierdo(aux.GetHijoIzquierdo()); aux.SetHijoDerecho(null); this.raiz = hijoaux; } else { hijoaux.SetHijoDerecho(aux.GetHijoDerecho()); hijoaux.SetHijoIzquierdo(aux.GetHijoIzquierdo()); this.raiz = hijoaux; } aux = null; } } } } return(true); } return(false); } return(false); }
public void SetHijoIzquierdo(NodoArbol aux) { this.hijoizquierdo = aux; }
public int Altura(NodoArbol raiz, int alt) { alt = AuxAltura(raiz, 1, alt); return(alt); }
public void SetHijoDerecho(NodoArbol aux) { this.hijoderecho = aux; }