Пример #1
0
        private void btnEvaluarArbol_Click(object sender, EventArgs e)
        {
            ServicioArbolBinario.calculaResultadoArbol(ServicioArbolBinario.getRaiz());
            String formula = ServicioArbolBinario.quitarParentesis(txtCadena.Text);

            txtResultado.Text = ServicioArbolBinario.getRaiz().getDatos();
        }
Пример #2
0
        private void btnPostOrden_Click(object sender, EventArgs e)
        {
            String cad;

            cad = ServicioArbolBinario.darRecorridoPostorden();
            tbxPostOrden.Text = cad;
        }
Пример #3
0
        private void btnPostOrden_Click(object sender, EventArgs e)
        {
            String original = "";
            String resultado;

            resultado       = ServicioArbolBinario.recorrePostOrden(ServicioArbolBinario.getRaiz(), original);
            txtOrdenes.Text = resultado;
        }
Пример #4
0
        private void btnResultado_Click(object sender, EventArgs e)
        {
            String resultado;
            double numero;

            numero    = ServicioArbolBinario.evaluarArbolExpresion();
            resultado = Convert.ToString(numero);

            txtResultado.Text = resultado;
        }
Пример #5
0
        private String devolverCadena()
        {
            String cadena = txtCadena.Text;

            cadena = ServicioArbolBinario.quitarEspacios(cadena);
            if (ServicioArbolBinario.hayParentesisExternos(cadena))
            {
                cadena = ServicioArbolBinario.quitarParentesis(cadena);
            }
            return(cadena);
        }
Пример #6
0
        private void btnCrearArbol_Click(object sender, EventArgs e)
        {
            try
            {
                Nodo raiz = new Nodo(devolverCadena());
                ServicioArbolBinario.setRaiz(raiz);
                ServicioArbolBinario.agregarArbol(raiz);
                MessageBox.Show("Se agrego exitosamente el arbol!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

                // MessageBox.Show("Error al agregar el arbol");
            }
        }
Пример #7
0
        private void lienzo_Paint(object sender, PaintEventArgs e)
        {
            if (bandera == 0)
            {
                return;
            }

            int mitadAncho = 0;

            Graphics g;

            g = lienzo.CreateGraphics();

            mitadAncho = TAM_HORIZONTAL / 2;

            g.TranslateTransform(lienzo.AutoScrollPosition.X, lienzo.AutoScrollPosition.Y);
            mostrarArbol(g, mitadAncho, 30, ServicioArbolBinario.getRaiz());
        }
Пример #8
0
 private void btnAdicionar_Click(object sender, EventArgs e)
 {
     try
     {
         tbxFormula.Text = ServicioSepararStrings.quitarEspaciosEnBlanco(tbxFormula.Text);
         if (!ServicioSepararStrings.tieneParentesis(tbxFormula.Text))
         {
             tbxFormula.Text = ServicioSepararStrings.ponerParentesisExternos(tbxFormula.Text);
         }
         Nodo raiz = new Nodo(tbxFormula.Text);
         ServicioArbolBinario.setRaiz(raiz);
         ServicioArbolBinario.crearArbol(raiz);
         MessageBox.Show("¡Se creo el arbol correctamente!");
     }
     catch (FormulaExeption er)
     {
         MessageBox.Show(er.darExeption());
     }
 }
Пример #9
0
        private void btnResultado_Click(object sender, EventArgs e)
        {
            try
            {
                if (ServicioArbolBinario.getRaiz() != null)
                {
                    ServicioArbolBinario.calcularArbol(ServicioArbolBinario.getRaiz());
                    tbxResultado.Text = ServicioArbolBinario.getRaiz().getDato();

                    tbxFormula.Text = ServicioSepararStrings.quitarEspaciosEnBlanco(tbxFormula.Text);
                    Nodo raiz = new Nodo(tbxFormula.Text);
                    ServicioArbolBinario.setRaiz(raiz);
                    ServicioArbolBinario.crearArbol(raiz);
                }
                else
                {
                    MessageBox.Show("¡Debe crear primero el arbol binario!");
                }
            }
            catch (FormulaExeption er)
            {
                MessageBox.Show(er.darExeption());
            }
        }
Пример #10
0
 private void btnAltura_Click(object sender, EventArgs e)
 {
     MessageBox.Show("La altura del arbol es de: " + ServicioArbolBinario.retornarAltura() + " niveles");
 }
Пример #11
0
 private void button1_Click(object sender, EventArgs e)
 {
     MessageBox.Show("La cantidad de nodos hoja es: " + ServicioArbolBinario.contarCantidadDeNodos());
 }
Пример #12
0
 private void btnContarNodos_Click(object sender, EventArgs e)
 {
     MessageBox.Show("La cantidad de nodos es: " + ServicioArbolBinario.cantidad());
 }
Пример #13
0
 private void btnGenerarArbol_Click(object sender, EventArgs e)
 {
     ServicioArbolBinario.procesarExpresion(txtCadena.Text);
 }
Пример #14
0
        private void mostrarArbol(Graphics pGrafica, int x, int y, Nodo pNodo)
        {
            Pen   pDatos  = new Pen(Color.Black);
            Pen   pElipse = new Pen(Color.Red);
            Brush b       = new SolidBrush(this.ForeColor);

            imagenes[0] = Image.FromFile("imagenes/and.png");
            imagenes[1] = Image.FromFile("imagenes/or.png");
            imagenes[2] = Image.FromFile("imagenes/nand.png");
            imagenes[3] = Image.FromFile("imagenes/nor.png");
            imagenes[4] = Image.FromFile("imagenes/xor.png");
            imagenes[5] = Image.FromFile("imagenes/xnor.png");
            imagenes[6] = Image.FromFile("imagenes/not.png");

            if (pNodo == null)
            {
            }
            else
            {
                int    anchoSeparacion = ServicioArbolBinario.darCuantosPadre(pNodo) * (SEPARACION / 2);
                String cadena          = pNodo.getDatos();
                switch (cadena)
                {
                case "*":

                    pGrafica.DrawImage(imagenes[0], x - 10, y - 20);
                    break;

                case "+":

                    pGrafica.DrawImage(imagenes[1], x - 10, y - 20);
                    break;

                case "&":

                    pGrafica.DrawImage(imagenes[2], x - 10, y - 20);
                    break;

                case "%":

                    pGrafica.DrawImage(imagenes[3], x - 10, y - 20);
                    break;

                case "#":

                    pGrafica.DrawImage(imagenes[4], x - 10, y - 20);
                    break;

                case "/":

                    pGrafica.DrawImage(imagenes[5], x - 10, y - 20);
                    break;

                case "$":

                    pGrafica.DrawImage(imagenes[6], x - 10, y - 20);
                    break;

                default:

                    pGrafica.DrawEllipse(pDatos, x - 10, y - 20, MEDIDA_ELIPSE, MEDIDA_ELIPSE);
                    pGrafica.DrawString(pNodo.getDatos(), new Font("Verdana", 15), b, x + 3, y - 12);
                    break;
                }

                if (pNodo.getIzq() != null)
                {
                    pGrafica.DrawLine(pDatos, x - 10, y + 2, x - SEPARACION - anchoSeparacion + RADIO, y + SEPARACION - RADIO - 5);
                }
                if (pNodo.getDer() != null)
                {
                    pGrafica.DrawLine(pDatos, x + 58, y + 2, x + SEPARACION + anchoSeparacion + RADIO, y + SEPARACION - RADIO - 5);
                }
                mostrarArbol(pGrafica, x - SEPARACION - anchoSeparacion, y + SEPARACION, pNodo.getIzq());
                mostrarArbol(pGrafica, x + SEPARACION + anchoSeparacion, y + SEPARACION, pNodo.getDer());
            }
        }
Пример #15
0
        private void btnContar_Click(object sender, EventArgs e)
        {
            int num = ServicioArbolBinario.darNodos();

            txtNumNodos.Text = num + "";
        }
Пример #16
0
 private void btnPosOrden_Click(object sender, EventArgs e)
 {
     txtPosOrden.Text = ServicioArbolBinario.recorrePosOrden(ServicioArbolBinario.getRaiz(), "");
 }