CLR: .Net / Mono / Boo / Otros CLR > C#
bicolas en c#
manujuuken:
hola, alguien me puede ayudar a hacer una bicola en c#?? es en aplicacion de windows........
gracias XD
morringos:
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:
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:
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]
manujuuken:
gracias!!! me ayudo bastante :D
Navegación
[#] Página Siguiente
Ir a la versión completa