Los programadores usan colas para representar estructuras de datos que obra por el First In , First Out ( FIFO ) guía. Esto significa que los datos introducidos en la estructura tiene que añadir a una lista de datos , y los datos que ha estado en la lista de los más largos será el primero en ser eliminado . En el lenguaje de programación C , un programador mejor implementa una forma básica de esta estructura utilizando una lista enlazada y varios punteros para mantener el orden de los datos . Instrucciones
1
Crear la estructura de nodos de datos y la estructura de la lista . Para que la lista enlazada para funcionar como una cola , la lista debe contener nodos capaces de hacer referencia al siguiente nodo en la lista y dos punteros que hacen referencia al principio y al final de la lista . Estas estructuras de ejemplo muestran una plantilla básica para la lista de nodos y la estructura de cola:
struct nodo {
datos int
;
struct nodo * siguiente ;
< p >} ;
struct { queue_list
struct nodo * primero , //puntero al primer elemento
struct nodo * última ; //puntero al último elemento < br >
}
2
Implementar un algoritmo de inserción de datos . En una cola , el programa siempre debe anexar los datos al final de la lista . Además, la lista debe hacer referencia al último elemento , por lo que las futuras inserciones saben en qué extremo debe anexar . El siguiente ejemplo muestra un algoritmo simple para añadir un nodo con los datos en una cola :
inserción nula (struct * cola q , int value) {
struct nodo * nodo_nuevo = malloc ( sizeof ( struct nodo) ) ;
nodo_nuevo -> data = valor ;
nodo_nuevo - > siguiente = NULL;
if ( q -> primero == NULL) {
q -> nombre = q -> last = nodo_nuevo //si la lista está vacía, primero y último = nodo_nuevo
} else { < br >
q - > última - > siguiente = nodo_nuevo //append nodo_nuevo después de último elemento
q -> last = última - > siguiente ; //punto "último" puntero a la nuevo nodo
}
}
3
Implementar un algoritmo de extracción. Este algoritmo tomará el valor del primer nodo en la lista. Entonces , apuntará la " primera " puntero al siguiente nodo y eliminar el primer nodo . Esto hará que el siguiente nodo de la nueva primera posición en la lista , lista para la extracción . El siguiente ejemplo muestra un algoritmo para lograr esto :
int remove (struct * cola q ) {
int value = q- > first - > data ;
struct nodo * temp = q -> primero ;
q -> nombre = q - > first - > siguiente ; //mueve el puntero a la primera orden del día,
libre ( temp ) ; //elimina el primer
valor antiguo nodo
retorno; //devuelve el primer valor;
}
4
declarar y utilizar una cola. El programador puede declarar una cola como variable de tipo " struct cola " y utilizar las funciones definidas para agregar y quitar elementos . El siguiente ejemplo muestra cómo declarar y utilizar una estructura de cola :
int main () {
struct cola q ;
inserción
(& q , 5 ) ; //usos una referencia a la " q " para evitar copias superficiales
inserción
(& q , 6 ) ;
int x = quitar ( y q ) //x = 5
< br >