Ahora les dejaremos ejemplos del manejo de colas en C#, en este tipo de estructuras contamos igual con 4 metodos como en las pilas y las definiremos a continuacion.
1.Push
push( cola,frente,final,max,elemento)
Si frente=0, final =max-1 Entonces
Imprimir “La cola esta llena” Salir
Si_No Si frente=1 Entonces
frente<–0
final<–0
Si_No
final<–final+1
Fin_Si
cola[final]<–elemento
Fin_Si
Fin_Procedimiento
Y el codigo en C# es el siguiente:
public void push(int elemento)
{
if (frente == 0 && final == max - 1)
{
Console.WriteLine("\n\nLa cola esta llena");
Console.ReadLine();
return;
}
else if (frente == -1)
{
frente = 0; final = 0;
}
else
{
final = final + 1;
}
cola[final] = elemento;
}
2. Pop
pop(cola,frente,final,max)
Si frente!=-1 Entonces
Imprimir”El elemento”,cola[frente],”Sera eliminado de la cola”
cola[frente]<–0
Si frente=final Entonces
frente<– (-1),final<– (-1)
Fin_Si
Si_No
Imprimir “La cola esta vacia”
Fin_Si
Fin_Procedimiento
Y el codigo en C# es el siguiente:
public void pop()
{
if (frente != -1)
{
Console.WriteLine("El Elemento " + cola[frente] + " Sera eliminado de la cola");
Console.ReadLine();
cola[frente] = 0;
if (frente == final)
{
frente = -1; final = -1;
}
else
{
frente = frente + 1;
}
}
else
{
Console.WriteLine("La Cola esta vacia");
Console.ReadLine();
}
}
3. Recorrido
Si frente!=-1
apuntador<– frente
Repetir Mientras apuntador<=final
Imprimir”Elemento”,cola[apuntador],”Posicion”,apuntador
apuntador<–apuntador+1
Fin_Ciclo
Si_No
Imprimir “La cola esta vacia”
Fin_Si
Fin_Procedimiento
Y el codigo en C# es el siguiente:
public void recorrido()
{
if (frente != -1)
{
int apuntador = frente;
do
{
Console.WriteLine("Elemento: " + cola[apuntador] + " Posicion: " + apuntador);
apuntador = apuntador+1;
} while (apuntador <=final);
Console.ReadLine();
}
else
{
Console.WriteLine("\n\nLa Cola esta VACIA");
Console.ReadLine();
}
}
4. Busqueda
Busqueda(cola,frente,final,max,elemento)
Si frente != -1 Entonces
apuntador<–frente
Repetir Mientras apuntador <=final
Si elemento =cola[apuntador] Entonces
Imprimir “dato localizado en la posicion”,apuntador
Salir
Si_No
apuntador<–apuntador +1
Fin_Ciclo
Imprimir”El elemento”,elemento,”no esta en la cola”
Si_No
Imprimir “La cola esta vacia”
Fin_Si
Fin_Procedimiento
Y el codigo en C# el siguiente:
public void busqueda(int elemento)
{
if (frente != -1)
{
int apuntador = frente;
while(apuntador <= final)
{
if (elemento==cola[apuntador])
{
Console.WriteLine("\n\nDato localizado en la posicion" + apuntador);
Console.ReadLine();
return;
}
else
{
apuntador = apuntador + 1;
}
}
Console.WriteLine("\n\nEl dato: " + elemento + "\nNo esta en la Cola");
}
else
{
Console.WriteLine("\n\nCOLA VACIA");
}
Console.ReadLine();
}
Al igual que en las Pilas, tenemos que declarar nuestro array global al igual que las variables, frente, final, max y recibir como parametro desde el Main la variable elemento
double []cola;
int frente, final,max;
public clasecolas(int n)
{
cola = new double[n];
frente = -1;
final = -1;
max = n;
}
De nuevo espero que les haya sido util este ejemplo y a continuacion les dejo el link para que descargen el proyecto completo .
[Descargar Proyecto]