public void eliminar(string nodo) { NodoArbol buscado = buscar(raiz, nodo); if (buscado != null) { NodoArbol padre = buscado.getPadre(); if (padre == null) { raiz = null; } else if (padre.getIzq() == buscado) { padre.setIzq(null); buscado.setPadre(null); } else { padre.setDer(null); buscado.setPadre(null); } } else { throw new Exception("El nodo no existe"); } }
private String operar(NodoArbol inicio) { NodoArbol result = null; if (inicio.getIzq() != null) { operar(inicio.getIzq()); } if (inicio.getDer() != null) { operar(inicio.getDer()); } if (inicio.getIzq() != null && inicio.getDer() != null) { if (inicio.getIzq().esHoja() && inicio.getDer().esHoja()) { try { double operacion = realizarOperacion(inicio.getIzq().getOperando(), inicio.getOperando(), inicio.getDer().getOperando()); inicio.setOperando(operacion.ToString()); inicio.setIzq(null); inicio.setDer(null); result = inicio; } catch (Exception eee) { throw new Exception("Se esta intentando dividir entre cero"); } } } else if (inicio.getIzq() == null && inicio.getDer() != null) { try { if (inicio.getDer().esHoja()) { double operacion = realizarOperacion("0", inicio.getOperando(), inicio.getDer().getOperando()); inicio.setOperando(operacion.ToString()); inicio.setIzq(null); inicio.setDer(null); result = inicio; } } catch (Exception eee) { throw new Exception("Se esta intentando dividir entre cero"); } } else if (inicio.getDer() == null && inicio.getIzq() != null) { try { if (inicio.getIzq().esHoja()) { double operacion = realizarOperacion(inicio.getIzq().getOperando(), inicio.getOperando(), "0"); inicio.setOperando(operacion.ToString()); inicio.setIzq(null); inicio.setDer(null); result = inicio; } } catch (Exception eee) { throw new Exception("Se esta intentando dividir entre cero"); } } return(raiz.getOperando()); }