예제 #1
0
        public ClaseNumeros verLifo()
        {
            ClaseNumeros temp = start;

            while (temp.Siguiente != null)
            {
                temp = temp.Siguiente;
            }
            return(temp);
        }
예제 #2
0
        public void desencolar()
        {
            ClaseNumeros temp = start;

            while (temp.Siguiente != null)
            {
                if (temp.Siguiente == null)
                {
                    break;
                }
            }
            temp.Siguiente.Siguiente = temp.Siguiente;
        }
예제 #3
0
        public ClaseNumeros verLifo()
        {
            ClaseNumeros temp = start;

            while (temp.Siguiente != null)
            {
                if (temp.Siguiente == null)
                {
                    break;
                }
            }

            return(temp.Siguiente);
        }
예제 #4
0
        public void pop()
        {
            ClaseNumeros temp = start;

            while (temp.Siguiente != null)
            {
                if (temp.Siguiente.Siguiente == null)
                {
                    break;
                }
                temp = temp.Siguiente;
            }

            ultimo = temp;
        }
예제 #5
0
        //LIFO

        public void encolarLifo(ClaseNumeros nuevo)
        {
            if (start == null)
            {
                start = nuevo;
            }
            else
            {
                ClaseNumeros t = start;

                while (t.Siguiente != null)
                {
                    t = t.Siguiente;
                }
                t.Siguiente = nuevo;
            }
        }
예제 #6
0
        private void button1_Click(object sender, EventArgs e)
        {
            FIFO fifo = new FIFO();
            LIFO lifo = new LIFO();

            ClaseCaracteres exp;
            ClaseNumeros    num;

            string cdn = txtExp.Text;


            foreach (var car in cdn.ToArray())
            {
                exp = new ClaseCaracteres(car);

                fifo.encolarFifo(exp);

                if (exp.Expresion == '1' || exp.Expresion == '2' || exp.Expresion == '3' ||
                    exp.Expresion == '4' || exp.Expresion == '5' || exp.Expresion == '6' ||
                    exp.Expresion == '7' || exp.Expresion == '8' || exp.Expresion == '9')
                {
                    num = new ClaseNumeros(exp.Expresion);
                    lifo.encolarLifo(num);
                }
            }

            while (fifo.peek().Expresion != null)
            {
                if (fifo.peek().Expresion == '1' || fifo.peek().Expresion == '2' ||
                    fifo.peek().Expresion == '3' || fifo.peek().Expresion == '4' ||
                    fifo.peek().Expresion == '5' || fifo.peek().Expresion == '6' ||
                    fifo.peek().Expresion == '7' || fifo.peek().Expresion == '8' ||
                    fifo.peek().Expresion == '9')
                {
                    fifo.pop();
                }
                else
                {
                    break;
                }
            }



            if (fifo.peek().Expresion == 's' && lifo.start != null && lifo.start.Siguiente != null)
            {
                int s = 0;

                s = lifo.start.Numero + lifo.start.Siguiente.Numero;


                num = new ClaseNumeros(s);

                lifo.encolarLifo(num);

                while (lifo.verLifo().Siguiente != null)
                {
                    if (lifo.verLifo().Siguiente.Numero == lifo.start.Numero || lifo.verLifo().Siguiente.Numero == lifo.start.Siguiente.Numero)
                    {
                        lifo.pop();
                    }
                    else
                    {
                        break;
                    }
                }
            }

            txtResultado.Text = lifo.verLifo().ToString();
        }