Está en la página 1de 6

IUTIRLA – Caracas – Sede Los Chaguaramos Carrera de Informática

Estructura de Datos III Semestre

Estructura de Datos, Colas
Fecha Autor : 18 de octubre de 2011 : 13.139.684 Román Vidoza, Luis Oscar

Índice
Indice ………………………………………….. 1 Introducción ………………………………………….. 1 Definición de cola …………..…………………………….. 3 Insertar y Remover datos en un arreglo .………………..….. 2 Ejemplos de algoritmos ………………………………………….. 4 Conclusiones ………………………………………….. 6 Referencias Bibliográficas ………………………………………….. 6

Introducción En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato elemental es la mínima información que se tiene en el sistema) con el objetivo de facilitar la manipulación de estos datos como un todo o individualmente. En el siguiente informe describiremos de manera sencilla y directa la estructura de dato conocida con el nombre de Cola, se dará una pequeña descripción de las operaciones básicas, ejemplos (similitudes con la cotidianidad), inserción y extracción, como los enunciados de algunos algoritmos. Definición de Cola Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir. Frente

Cola

Final

1

Desencolar (sacar. una cola. almacena los datos en ella. • Los autos que esperan que cambie la luz roja de un semáforo • Los niños que esperan un juego para subir un juego mecánico. uno que apunta al último elemento y otro que apunta hacia el primer elemento (o el elemento del frente). manteniendo cierto orden. el primer elemento que entró. Nos encontramos ante una estructura con muy pocas operaciones disponibles. eliminar): se elimina el elemento frontal de la cola. Arreglo (q) 2 . Se debe tener en cuenta que. remove (q)  Suprime el elemento delantero de la cola q. es decir. ésta estructura cuenta con dos apuntadores. Las colas sólo permiten añadir y leer elementos: • • • • Crear: se crea la cola vacía. entrar. salir. Ejemplos cotidianos de estructura de colas: • Las personas esperando para usar un teléfono público.IUTIRLA – Caracas – Sede Los Chaguaramos Carrera de Informática Estructura de Datos III Semestre Como puede observarse. Se añade al final de esta. front): se devuelve el elemento frontal de la cola. ya que sus elementos se añaden por el final de la cola y se extraen o se eliminan por la parte de frente. si la cola tiene elementos o no. Encolar (añadir. Frente (consultar. empty (q) Retorna True o false. x)  Inserta el elemento x en la parte posterior de la cola q. • Las personas que esperan para ser atendidas en una caja de un banco. Como Insertar y remover datos en un arreglo tipo cola: Los arreglos tipos colas trabajan bajo las operaciones: insert (q. el primer elemento que entró. insertar): se añade un elemento a la cola. es decir.

rear=2.rear=0.front=0 Insert (&q. q.front=1 Remove (&q) 1 C 2 3 4 3 .rear y q. Las variables q. ‘A’). q. q. muestra la forma de implementar una cola.front=0 B 1 C 2 3 4 B 1 2 3 4 1 2 3 4 Procedimiento para remover: Remove (&q) B 0 q. q. ‘C’). ‘B’).front. como arreglo. A 0 q. Procedimiento para insertar: Insert (&q.rear=1.front=0 Insert (&q. en la que cada casilla. A 0 q. representa una estructura compuesta por el tipo de dato a guardar (o bien otra estructura). A 0 q. se van modificando cada vez que añadimos o eliminamos datos de nuestra cola.IUTIRLA – Caracas – Sede Los Chaguaramos Carrera de Informática Estructura de Datos III Semestre 0 1 2 3 4 La figura de arriba.rear=2.

rear=2.IUTIRLA – Caracas – Sede Los Chaguaramos Carrera de Informática Estructura de Datos III Semestre C 0 q. pNodo *ultimo. el último elemento de la cola es el nuevo nodo */ *ultimo = nuevo. private: 4 . /* Ahora. siguiente = sig. ahora primero apuntará también al nuevo nodo */ if(!*primero) *primero = nuevo. añadimos el nuevo a continuación de ultimo */ if(*ultimo) (*ultimo)->siguiente = nuevo. nuevo->valor = v. class nodo \{ public: nodo(int v. } Ejemplo en C++: #include <iostream> using namespace std. int Pop().front=2 1 2 3 4 Ejemplo de Lenguajes de Programación con Algoritmos para Estructura de datos tipo Cola: Ejemplo en C: void Anadir(pNodo *primero. }. primero(NULL) \{} ~cola(). /* Si primero es NULL. class cola \{ public: cola() : ultimo(NULL). /* Si la cola no estaba vacía. /* Crear un nodo nuevo */ nuevo = (pNodo)malloc(sizeof(tipoNodo)). friend class cola. /* Este será el último nodo. } private: int valor. void Push(int v). typedef nodo *pnodo. int v) \{ pNodo nuevo. q. nodo *sig = NULL) \{ valor = v. la cola estaba vacía. no debe tener siguiente */ nuevo->siguiente = NULL. nodo *siguiente.

/* variable auxiliar para manipular nodo */ int v. cout << "Añadir(20)" << endl.Leer() cin. /* Si primero es NULL. } int main() \{ cola Cola. ahora primero apuntará también al nuevo nodo */ if(!primero) primero = nuevo.Leer() cout << "Leer: " << Cola. return v. cout << "Añadir(30)" << endl. << endl. /* Si la cola no estaba vacía. cola::~cola() \{ while(primero) Leer().Anadir(30). la cola estaba vacía.get().Anadir(10). << endl. /* Ahora. cout << "Leer: " << Cola. /* Guardamos el valor de retorno */ v = nodo->valor. if(!nodo) return 0. cout << "Añadir(10)" << endl. Cola. Cola. Cola. << endl.Anadir(90). cout << "Leer: " << Cola. ultimo debe ser NULL también*/ if(!primero) ultimo = NULL. el último elemento de la cola es el nuevo nodo */ ultimo = nuevo. añadimos el nuevo a continuación de ultimo */ if(ultimo) ultimo->siguiente = nuevo. << endl. 5 . cout << "Añadir(40)" << endl.Leer() cout << "Leer: " << Cola.IUTIRLA – Caracas – Sede Los Chaguaramos Carrera de Informática Estructura de Datos III Semestre pnodo ultimo. }. } void cola::Anadir(int v) \{ pnodo nuevo. cout << "Leer: " << Cola. /* Si no hay nodos en la pila retornamos 0 */ /* Asignamos a primero la dirección del segundo nodo */ primero = nodo->siguiente.Leer() Cola.Anadir(20). } int cola::Leer() \{ pnodo nodo.Anadir(40). /* Si la cola quedó vacía. cout << "Añadir(90)" << endl. /* variable auxiliar para retorno */ /* Nodo apunta al primer elemento de la pila */ nodo = primero. /* Crear un nodo nuevo */ nuevo = new nodo(v). /* Borrar el nodo */ delete nodo. << endl.Leer() Cola.

monografias.IUTIRLA – Caracas – Sede Los Chaguaramos Carrera de Informática Estructura de Datos III Semestre return 0.org/wiki/Cola 6 .conclase. en las colas no se permite el acceso aleatorio a ningún elemento concreto (como ejemplo podemos imaginar la cola de un supermercado.com/trabajos38/manual-programacion http://c.wikipedia. las inserciones para las colas se hacen al final de la lista. } Conclusiones Las colas no son más que listas lineales de información a las cuales se accede de un modo determinado siendo el de tipo (FIFO) lo que quiere decir que el primer dato en entrar es también el primer dato en salir.net es. la de un cine). Referencias Bibliográficas http://www.