3
« en: Viernes 17 de Septiembre de 2010, 16:49 »
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??