Colas en C#

Filed Under (Estructura de datos, c#, edgarantonio) by Edgar on 06-03-2010

Tagged Under : , , , ,

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]

  • Share/Bookmark

Leave a Reply