Colas
Una cola es una estructura de datos, caracterizada por ser
una secuencia de elementos en la que la operación de inserción se realiza por
un extremo y la operación de extracción por el otro.
Elementos de una Cola:
Frente: Apunta al inicio de la cola y se incrementa cada
vez que sale un elemento de la cola.
Atras: Apunta al último elemento que entro a la cola y se incrementa cada vez que ingresa un nuevo elemento.
Lacola[]: Es el vector de tamaño
máximo que guardará los elementos de la cola.
maximo: Es el tamaño
máximo de la cola o número de elementos que tendrá la cola.
Política:
“El
primero que llega es el primero en salir.”
Operaciones de la cola:
cola_llena():
Regresa True si atras=maximo y false en
caso contrario.
cola_vacia():
Regresa true si frente=-1 y false en caso contrario
agregar_cola():
Agrega elemento a la cola.
del_cola():
Elimina un elemento de la cola.
Algoritmo de la clase Cola programado en C#
using System;
using System.Windows.Forms;
//en la parte de using System; se pone esta línea para poder usar los MessageBox.Show("");
namespace cola_ejemplo
{
class colas
{
private int frente;
private int atras;
private int[] lacola;
private int maximo;
public colas() { }
public colas(int max)
{
frente = -1;
atras = -1;
maximo = max;
lacola = new int[maximo];
}
public Boolean cola_llena()
{
if (atras == maximo-1)
{
return true;
}
else
{
return false;
}
}
public Boolean cola_vacia()
{
if (frente == -1)
{
return true;
}
else
{
return false;
}
}
public void agregar_cola(int n)
{
if (cola_llena() == true)
{
MessageBox.Show("Cola
llena");
}
else
{
atras++;
lacola[atras]=n;
if (atras == 0)
{
frente = 0;
}
}
}
public int del_cola()
{
int n = -666;
if (cola_vacia() == true)
{
MessageBox.Show("Cola
vacia");
}
else
{
n = lacola[frente];
if (frente == atras)
{
frente = -1;
atras = -1;
}
else
{
frente++;
}
}
return n;
}
}
}
Ejemplo:
Se creo una aplicación con el siguiente diseño:
}
Ejemplo:
Se creo una aplicación con el siguiente diseño:
Se les cambio la propiedad "name" a los Button y TextBox :
-Al TextBox que esta a la derecha de donde dice Maximo se le puso en la propiedad name txtmaximo
-Al TextBox que esta a la derecha de donde dice Numero se le puso en la propiedad name txtnumero
-Al boton agregar se le cambio la propiedad name por btnagregar
-Al boton Eliminar se le cambio la propiedad name por btneliminar
-Al boton terminar se le cambio la propiedad name por btnterminar
-Al boton Crear se le cambio la propiedad name por btncrear
Código de la aplicación utilizando la clase colas:
namespace cola_ejemplo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
colas x = new colas();
private void Form1_Load(object sender, EventArgs e)
{
}
private void btncrear_Click(object sender, EventArgs e)
{
int n;
n = int.Parse(txtmaximo.Text);
x = new colas(n);
MessageBox.Show("Cola
creada");
}
private void btnagregar_Click(object sender, EventArgs e)
{
int n;
n = int.Parse(txtnumero.Text);
x.agregar_cola(n);
MessageBox.Show("Valor
agregado");
txtnumero.Clear();
txtnumero.Focus();
}
private void btneliminar_Click(object sender, EventArgs e)
{
int n;
n = x.del_cola();
if (n == -666)
{
MessageBox.Show("Cola sin
valores");
}
else
{
MessageBox.Show("salio" + n);
}
}
private void btnterminar_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
Como se muestra?
ResponderBorrar