Objetivos Introducción MATERIAL Y EQUIPO

Anuncio
Programación III, Guía 5
1
Facultad : Ingeniería
Escuela : Computación
Asignatura: Programación III
Tema: “COLAS”.
Objetivos
Introducción al concepto y uso de la Estructura Dinámica Cola.
Aplicar la estructura de datos Cola en la solución de problemas.
Introducción
Las colas son llamadas también estructuras FIFO(first-in, first-out, primero en entrar, primero en salir). Sus
aplicaciones son numerosas: colas de las tareas realizadas por una impresora, acceso a almacenamiento en
disco, sistema compartido y uso del CPU. Como su definición lo dice, en una cola los elementos deben
insertarse por la final de la cola y eliminarse por el frente, asi se cumple la definición primero en entrar,
primero en salir. Gráficamente una cola puede representarse de la siguiente manera:
Al igual que en la representación de listas, el ultimo elemento de la cola debe apuntar a NULL para indicar el
final de la misma. Las colas también son estructuras dinámicas que pueden aumentar o disminuir en tiempo
de ejecución, la única diferencia es que aquí se manejan dos punteros una indicando el frente o inicio de la
cola, y el otro para representar el final de la cola. Entre las funciones mas comúnmente usadas sobre colas
están: Inicializar, Insertar, Eliminar, Cola Vacía.
MATERIAL Y EQUIPO
Nº
Cantidad
Descripción
Programación III, Guía 5
2
1
1
Guía de Programación #5,
Programación III
2
1
Dispositivo de memoria
Procedimiento
1- Cree un proyecto modo consola en Visual C#.Net y agregue el siguiente código dentro de la clase
programa
namespace ListaTipoCola
{
class Cola
{
class Nodo
{
public int info;
public Nodo sig;
}
private Nodo raiz, fondo;
public Cola()
{
raiz = null;
fondo = null;
}
public bool Vacia()
{
if (raiz == null)
return true;
else
return false;
}
public void Insertar(int info)
{
Nodo nuevo;
nuevo = new Nodo();
nuevo.info = info;
nuevo.sig = null;
if (Vacia())
{
raiz = nuevo;
fondo = nuevo;
}
else
{
fondo.sig = nuevo;
Programación III, Guía 5
fondo = nuevo;
}
}
public int Extraer()
{
if (!Vacia())
{
int informacion = raiz.info;
if (raiz == fondo)
{
raiz = null;
fondo = null;
}
else
{
raiz = raiz.sig;
}
return informacion;
}
else
return int.MaxValue;
}
public int Cantidad()
{
int cant = 0;
Nodo reco = raiz;
while (reco != null)
{
cant++;
reco = reco.sig;
}
return cant;
}
}
}
Elabore el principal para las operaciones siguientes.
Cola micola = new Cola();
Console.WriteLine("Colocando 5 elementos en la cola..."); micola.Push(11);
micola.Push(12);
micola.Push(13);
micola.Push(14);
micola.Push(15);
micola.Mostrar();
Console.WriteLine("Retirando 2 elementos de la cola...");
micola.Pop();
micola.Pop();
micola.Mostrar();
Console.WriteLine("Se retiró el elemento:{0}", micola.PopValor()); micola.Mostrar();
3
4
Programación III, Guía 5
2- En este ejercicio se utilizaran funciones de colas ya creadas en Visual C# pero se utilizan objetos por lo que
habrá que hacer las conversiones necesarias.
- Cree un nuevo proyecto en Visual C#.net en modo consola - Agregue al inicio el nombre de espacio
Collections de la siguiente manera: using System.Collections; Pagina 4 de 5
Programación III, Guía 5
5
Dentro del método static void Main(string[] args) ingrese el siguiente código:
//crear una cola qtemp
Queue qtemp = new Queue(); //Enqueue inserta un elemento a la cola qtemp.Enqueue("a");
qtemp.Enqueue("b");
qtemp.Enqueue("c");
qtemp.Enqueue("d");
Console.WriteLine("Elementos que contiene la cola {0}", qtemp.Count); //mostramos el contenido
de la cola
foreach (object var in qtemp)
{
Console.WriteLine(var.ToString());
}
Console.WriteLine();
//Dequeue extrae un elemento de la cola
qtemp.Dequeue();
Console.WriteLine("Elementos que contiene la cola {0}", qtemp.Count); //mostramos el contenido
de la cola
foreach (object var in qtemp)
{
Console.WriteLine(var.ToString());
}
Console.ReadLine();
Ejercicio 1. Crear un menú que tenga la opciones a. Insertar elemento b. Eliminar elemento c. Mostrar cola d.
Salir
Ejercicio 2. Se tiene una cola donde hay hombres y mujeres se pide dividir la cola en una de hombres y una de
mujeres.
Investigación complementaria.
6
Programación III, Guía 5
Realizar la simulación de una cola bancaria, el banco contara con 4 cajeros, cuando una persona entre al
banco, deberá seleccionar la cola que tenga menos personas, el cajero podrá retirar las personas luego de
realizar los tramites
Ingrese una persona y ve que la cola con menos personas es la de el cajero 3
Se puede realizar en modo consola o grafico, cuando más de un cajero tenga el mismo número de elementos
en la cola la persona puede escoger cualquier cajero.
Bibliografía.
Joyanes Aguilar, Luis. Problemas de Metodología de la Programación
Cairo, Osvaldo, Estructura de Datos
Descargar