示例#1
0
        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");
            }
        }
示例#2
0
        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());
        }