0% encontró este documento útil (0 votos)
20 vistas4 páginas

Programcion de Cola

Una cola es una estructura de datos lineal basada en el principio FIFO, donde los elementos se insertan en un extremo (final) y se eliminan en el otro (frente). Se implementa mediante listas enlazadas y se usa para almacenar elementos en espera de procesamiento, como procesos, paquetes o documentos. Las operaciones básicas son encolar (agregar al final) y desencolar (eliminar del frente).
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas4 páginas

Programcion de Cola

Una cola es una estructura de datos lineal basada en el principio FIFO, donde los elementos se insertan en un extremo (final) y se eliminan en el otro (frente). Se implementa mediante listas enlazadas y se usa para almacenar elementos en espera de procesamiento, como procesos, paquetes o documentos. Las operaciones básicas son encolar (agregar al final) y desencolar (eliminar del frente).
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Programación cola

Una cola (también llamada fila) es un tipo de dato abstracto, 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 pull 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.

Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación (entre


otros), donde los objetos, personas o eventos son tomados como datos que se almacenan y se
guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos
abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas
enlazadas.

En programación, una cola (queue) es una estructura de datos lineal que se basa en el principio
FIFO (First In, First Out), es decir, el primer elemento en entrar es el primero en salir.

Una cola se comporta como una caja con varios elementos, en donde solo se pueden realizar
dos operaciones: encolar (enqueue) y desencolar (dequeue). Al encolar un elemento, se agrega
al final de la cola, y al desencolar se elimina el elemento que está en el frente de la cola.

Ejemplo de uso:En sistemas operativos, la cola se utiliza para almacenar procesos en espera de
ser ejecutados.

En redes de computadoras, las colas se utilizan para almacenar paquetes en espera de ser
transmitidos.

En sistemas de impresión, las colas se utilizan para almacenar documentos en espera de ser
impresos.

En resumen, una cola es una estructura de datos en la que las operaciones de inserción se
realizan en un extremo (final de la cola) y las operaciones de eliminación se realizan en otro
extremo (frente de la cola). Es una estructura de datos esencial para la programación y es
utilizada en una variedad de problemas y aplicaciones.

Parzibyte's blog

Cola en C – Estructura de datos

parzibyte

hace 1 año
En este post vamos a implementar una estructura de datos en C de tipo lista ligada.

Se trata de una cola, que a su vez es una lista en donde iremos colocando los elementos
al final de la misma, contrario a una pila en donde cada elemento va a la parte superior.

Hay varias operaciones para una cola en C, pero por ahora te mostraré las 2 básicas: la
de encolar un elemento y la de recorrer la cola.

Con esos dos métodos ya puedes calcular el tamaño de la lista, comprobar si un


elemento existe en la cola y muchas cosas más.

Recuerda que la cola en C puede ser de cualquier tipo y guardar cualquier cantidad
de datos de cualquier tipo. Al final nosotros le asignamos memoria dinámicamente
con malloc.

El nodo de la lista
Veamos el struct que será el nodo. Este nodo guarda el dato que irá en la cola, y además
un apuntador al siguiente elemento.

Recuerda que este nodo o elemento de la lista puede guardar más datos, incluso otros
nodos, apuntadores y varias cosas.

En mi caso para hacer las cosas simples solo he colocado un elemento de tipo cadena:

See the gist on github.

Lo importante aquí es que el elemento de la cola se llama NodoDeLista, y que tiene un


apuntador a otro nodo de su mismo tipo pero además tiene un elemento de tipo string
llamado nombre.

Agregar elemento a la cola en C


Veamos una de las operaciones más interesantes, y es la de agregar un elemento a esta
lista en C.

Recuerda que tenemos que agregarlo al final de todos los elementos, así que usamos
las recursividad o recursión. Por cierto, en la función recibimos un apuntador a un
struct, y no solo un struct.

See the gist on github.

Esta es una de las partes más importantes, así que lee con atención. En la línea
3 estamos alojando memoria para nuestro nodo, estamos solicitando RAM al sistema
operativo, ahí es en donde la magia sucede.

Nota: si por alguna razón no hubiera memoria, malloc devolvería NULL, pero no estoy
manejando ese caso.

Luego en la línea 4 asignamos al nodo el valor del nombre que vamos a agregar. Aquí
es necesario el uso de strcpy para asignar la cadena ya que en C las cadenas son algo
difíciles de tratar.
Si fuera un tipo de dato como un entero o algo simple, podríamos hacer por
ejemplo: nuevoNodo->edad = 25;

Hasta este punto solo hemos declarado el nodo, y no lo hemos ligado o relacionado con
otro.

Si la cola está vacía


En la línea 6 comprobamos si el nodo actual está vacío (esto sería en caso de que sea el
primer elemento) y en ese caso asignamos el nuevo nodo al inicio de la lista.

En las siguientes llamadas nos volverán a pasar ese apuntador pero ya tendrá un
elemento, y ahí aplicaremos recursividad.

Si la cola tiene elementos


Por otro lado, si el nodo que nos pasan ya está definido entonces invocamos a la función
(recursión) dentro de sí misma pasándole los mismos argumentos pero en lugar del nodo
original le pasamos el siguiente nodo.

Esta recursividad se va a repetir hasta que lleguemos la final de la cola, en donde el


nodo será NULL.

Recorrer cola
Ya vimos la operación de agregar elementos a la lista en C. Ahora veamos
cómo recorrerla, y podemos hacerlo usando recursividad o un ciclo while.

Yo he decidido usar un ciclo por simplicidad, ya que la recursión no es obligatoria.


Simplemente establecemos un apuntador al inicio de la lista, y mientras el mismo no
sea nulo, lo asignamos a su siguiente.

See the gist on github.

Aquí es en donde podemos contar los elementos o saber si existe cierto elemento, ya
que en cada paso podemos acceder a todas las propiedades del elemento actual de la
cola.
Poniendo todo junto

Cola en C – Programación de estructuras de datos con listas

Ya te mostré el nodo de la cola y las funciones para agregar o listar. Ahora veamos
cómo declarar el primer elemento e invocar a las funciones. El código completo queda
así:

See the gist on github.

Solo fíjate en que la función de agregarNodoALista recibe el apuntador al struct, y la


función que imprime la lista solo recibe el struct inicial.

Eso de los apuntadores es necesario para poder modificar la lista desde otra función; es
algo así como pasar la lista por referencia.

También podría gustarte