• Domingo 22 de Diciembre de 2024, 13:58

Autor Tema:  bicolas en c#  (Leído 6764 veces)

manujuuken

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
bicolas en c#
« en: Jueves 16 de Septiembre de 2010, 16:43 »
0
hola, alguien me puede ayudar a hacer una bicola en c#?? es en aplicacion de windows........
gracias XD

morringos

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: 00
    • Ver Perfil
Re: bicolas en c#
« Respuesta #1 en: Jueves 16 de Septiembre de 2010, 19:16 »
0
manujuuken: Especifíca más sobre qué tipo de bicolas, las de entrada restringida ó salida restringida.
Para poderte ayudar, necesitaría mas datos como el tipo de bicola y si es bicola estática ó dinámica, ver cómo es que lo estás tratando de hacer y encontrarle una solución a los problemas que se te presenten.

Saludos.


manujuuken

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: bicolas en c#
« Respuesta #2 en: Viernes 17 de Septiembre de 2010, 16:49 »
0
hola; es una bicola dinámica de entrada restringida; el codigo que tengo para una cola normal es este:
// Variables globales
        private string[] Cola;
        public static int Frente;
        public static int Final;
        public static int N;
 
       
 
        public clsFila(int capacidad)    // Constructor
        {

            this.Cola = new string[capacidad];   // Arreglo lineal
            N = 4;
            Frente = -1;
            Final = -1;
        }


        public int Insercion
        {
            get {return this.Cola.Length; }
        }
       
       
       
       
       
        void Insercion(object sender, System.EventArgs e)
        {
            frmInsercion Insercion = new frmInsercion();
            Insercion.Show();
        }
 
        void CmdRecorridoClick(object sender, System.EventArgs e)
        {
            frmRecorrido Recorrido = new frmRecorrido();
            Recorrido.Show();
        }
 
        void CmdBusquedaClick(object sender, EventArgs e)
        {
            frmBusqueda Busqueda = new frmBusqueda();
            Busqueda.Show();
        }
 
        void CmdEliminacionClick(object sender, EventArgs e)
        {
            frmEliminacion Eliminar = new frmEliminacion();
            Eliminar.Show();
        }

        void Insertar(object sender, System.EventArgs e)
        {
            elemento = txtInsercion.Text;
            // Se verifica que haya espacio en la Cola
            if (frmPrincipal.Frente == 0 && frmPrincipal.Final == frmPrincipal.N)
            {
                MessageBox.Show("La Cola esta llena");
                return;
            }
            if (frmPrincipal.Frente == frmPrincipal.Final + 1)
            {
                MessageBox.Show("La Cola esta llena");
                return;
            }

            // Si la cola esta vacia se inicializan punteros
            if (frmPrincipal.Frente == -1)
            {
                frmPrincipal.Frente = 0;
                frmPrincipal.Final = 0;
            }
            else if (frmPrincipal.Final == frmPrincipal.N)
            {
                frmPrincipal.Final = 0;
            }
            else
            {
                frmPrincipal.Final = frmPrincipal.Final + 1;
            }
            // Se agrega elemento a la Cola
            frmPrincipal.Cola[frmPrincipal.Final] = elemento;
            txtInsercion.Text = "";

        }

        void Eliminar(object sender, EventArgs e)
        {
            if (frmPrincipal.Frente == -1)
            {
                MessageBox.Show("Cola Vacia");
                return;
            }
            string elemento = frmPrincipal.Cola[frmPrincipal.Frente];

            // si la cola tiene un solo elemento
            if (frmPrincipal.Frente == frmPrincipal.Final)
            {
                frmPrincipal.Frente = -1;
                frmPrincipal.Final = -1;
            }

            else if (frmPrincipal.Frente == frmPrincipal.N)
            {
                frmPrincipal.Frente = 0;
            }

            else
            {
                frmPrincipal.Frente = frmPrincipal.Frente + 1;
            }

            lsEliminado.Items.Add(elemento);
        }


tiene algo que ver con la bicola?? como lo uedo cambiar??

morringos

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: 00
    • Ver Perfil
Re: bicolas en c#
« Respuesta #3 en: Domingo 19 de Septiembre de 2010, 19:41 »
0
Bueno bro, la verdad casi no le entendí a tu código, tal vés y si hubiera visto un poco el formulario, el diseño de tu aplicación me hubiera servido como apoyo, pero aquí te dejo un ejemplo básico que hice en Visual Studio 2010, en dado caso de que no cuentes con esa versión, le puedes dar clic derecho a la clase Form1.cs y darle editar para que veas el código con el bloc de notas, pero en si, la aplicación está compilada en .NET Framework 3.5, que no creo que tengas problemas con eso para poder ver la aplicación correr.


Espero y te sirva el ejemplo. En cuanto al diseño, fué lo único que se me ocurrió así rápido para hacer el trabajo de la bicola por entrada restringida y los métodos reverseQueue y ordenarQueue sinceramente es el mismo, sólamente para poder tener un mejor orden.

Saludos!;
Morringos Phyps!;  ^_^


[attachment=0:2puy4m2l]BicolaDinEnRes.rar[/attachment:2puy4m2l]
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.


manujuuken

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: bicolas en c#
« Respuesta #4 en: Martes 21 de Septiembre de 2010, 03:09 »
0
gracias!!! me ayudo bastante  :D

morringos

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: 00
    • Ver Perfil
Re: bicolas en c#
« Respuesta #5 en: Martes 21 de Septiembre de 2010, 06:04 »
0
De nada bro, ya sabes, para eso estámos ;).

La otra forma que podrías manejar bicolas dinámicas con entradas restringidas, es creando una clase para las colas y otra clase para los nodos de dicha cola, que en si, prácticamente es casi lo mismo, sólamente que las que ya tiene implementada C# es más fácil, digamos que la otra, es como más a pie.

Me alegra que te haya servido mucho el ejemplo, cualquier duda, aquí estamos  ;) .


Saludos!;
Morringos Phyps!;  ^_^