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