Tecnología

Inicio

Cómo hacer una función de cola en la C Sintaxis

Los programadores usan colas para representar estructuras de datos que trabajan por el First In, First Out (FIFO) directriz. Esto significa que todos los datos introducidos en la estructura se anexará 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 Cree la estructura de nodos de datos y la estructura de la lista. Para que la lista vinculada para funcionar como una cola, la lista debe contener nodos capaces de hacer referencia a la siguiente nodo en la lista y dos punteros que hacen referencia al principio y el final de la lista. Estas estructuras de ejemplo muestran una plantilla básica para los nodos de lista y la estructura de cola:

{struct node

int datos;

struct nodo * siguiente;

};

queue_list struct {

struct * nodo primero; // Puntero al primer elemento

struct nodo * última; // Puntero al último elemento

}

2 Implementar un algoritmo de inserción de datos. En una cola, el programa siempre debe añadir los datos al final de la lista. Por otra parte, 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:

inserto void (* struct cola q, int value) {

struct nodo * nodo_nuevo = malloc (sizeof (struct nodo));

newnode-> = valor de los datos;

newnode-> siguiente = NULL;

si (q-> primera == NULL) {

q-> primera = q-> última = nodo_nuevo; // Si la lista está vacía, primera y última = nodo_nuevo

}

más{

q-> última-> siguiente = nodo_nuevo; // Agregar nodo_nuevo después del último elemento

q-> última de último => siguiente; // Punto "último" puntero al nuevo nodo

}

}

3 Implementar un algoritmo de extracción. Este algoritmo tomará el valor desde el primer nodo de la lista. A continuación, se señalará 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-> primera> datos;

struct nodo * temp = q-> en primer lugar;

q-> primera = q-> primera> siguiente; // Mueve el primer puntero al siguiente elemento

libre (temp); // Elimina el antiguo primer nodo

valor de retorno; // Devuelve el primer valor;

}

4 Declarar y utilizar una cola. El programador puede declarar una cola como variable de tipo "cola de estructura" y utilizar las funciones definidas para añadir y eliminar elementos. El siguiente ejemplo muestra cómo declarar y utilizar una estructura de cola:

int main () {

struct q cola;

insertar (y q, 5); // Utiliza una referencia a "q" para evitar las copias de poca profundidad

insertar (y q, 6);

int x = remove (y q); // X = 5