#include <stdio.h>
#include <stdlib.h>
typedef struct Nodo {
int dato;
struct Nodo *siguiente;
} Nodo;
typedef struct Cola {
Nodo *frente;
Nodo *final;
} Cola;
void inicializarCola(Cola *cola) {
cola->frente = NULL;
cola->final = NULL;
}
void encolar(Cola *cola, int valor) {
Nodo *nuevoNodo = (Nodo *)malloc(sizeof(Nodo));
if (!nuevoNodo) {
printf("Error: No se pudo asignar memoria\n");
return;
}
nuevoNodo->dato = valor;
nuevoNodo->siguiente = NULL;
if (cola->final == NULL) {
cola->frente = nuevoNodo;
} else {
cola->final->siguiente = nuevoNodo;
}
cola->final = nuevoNodo;
}
void imprimirCola(Cola *cola) {
Nodo *actual = cola->frente;
printf("Cola: ");
while (actual) {
printf("%d -> ", actual->dato);
actual = actual->siguiente;
}
printf("NULL\n");
}
int main() {
Cola miCola;
inicializarCola(&miCola);
printf("\n--- Implementación de una cola con apuntadores ---\n");
printf("Autor: Joel Quezada\n\n");
encolar(&miCola, 10);
encolar(&miCola, 20);
encolar(&miCola, 30);
encolar(&miCola, 40);
imprimirCola(&miCola);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IE5vZG8gewogICAgaW50IGRhdG87CiAgICBzdHJ1Y3QgTm9kbyAqc2lndWllbnRlOwp9IE5vZG87Cgp0eXBlZGVmIHN0cnVjdCBDb2xhIHsKICAgIE5vZG8gKmZyZW50ZTsKICAgIE5vZG8gKmZpbmFsOwp9IENvbGE7Cgp2b2lkIGluaWNpYWxpemFyQ29sYShDb2xhICpjb2xhKSB7CiAgICBjb2xhLT5mcmVudGUgPSBOVUxMOwogICAgY29sYS0+ZmluYWwgPSBOVUxMOwp9Cgp2b2lkIGVuY29sYXIoQ29sYSAqY29sYSwgaW50IHZhbG9yKSB7CiAgICBOb2RvICpudWV2b05vZG8gPSAoTm9kbyAqKW1hbGxvYyhzaXplb2YoTm9kbykpOwogICAgaWYgKCFudWV2b05vZG8pIHsKICAgICAgICBwcmludGYoIkVycm9yOiBObyBzZSBwdWRvIGFzaWduYXIgbWVtb3JpYVxuIik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbnVldm9Ob2RvLT5kYXRvID0gdmFsb3I7CiAgICBudWV2b05vZG8tPnNpZ3VpZW50ZSA9IE5VTEw7CiAgICAKICAgIGlmIChjb2xhLT5maW5hbCA9PSBOVUxMKSB7CiAgICAgICAgY29sYS0+ZnJlbnRlID0gbnVldm9Ob2RvOwogICAgfSBlbHNlIHsKICAgICAgICBjb2xhLT5maW5hbC0+c2lndWllbnRlID0gbnVldm9Ob2RvOwogICAgfQogICAgY29sYS0+ZmluYWwgPSBudWV2b05vZG87Cn0KCnZvaWQgaW1wcmltaXJDb2xhKENvbGEgKmNvbGEpIHsKICAgIE5vZG8gKmFjdHVhbCA9IGNvbGEtPmZyZW50ZTsKICAgIHByaW50ZigiQ29sYTogIik7CiAgICB3aGlsZSAoYWN0dWFsKSB7CiAgICAgICAgcHJpbnRmKCIlZCAtPiAiLCBhY3R1YWwtPmRhdG8pOwogICAgICAgIGFjdHVhbCA9IGFjdHVhbC0+c2lndWllbnRlOwogICAgfQogICAgcHJpbnRmKCJOVUxMXG4iKTsKfQoKaW50IG1haW4oKSB7CiAgICBDb2xhIG1pQ29sYTsKICAgIGluaWNpYWxpemFyQ29sYSgmbWlDb2xhKTsKICAgIAogICAgcHJpbnRmKCJcbi0tLSBJbXBsZW1lbnRhY2nDs24gZGUgdW5hIGNvbGEgY29uIGFwdW50YWRvcmVzIC0tLVxuIik7CiAgICBwcmludGYoIkF1dG9yOiBKb2VsIFF1ZXphZGFcblxuIik7CiAgICAKICAgIGVuY29sYXIoJm1pQ29sYSwgMTApOwogICAgZW5jb2xhcigmbWlDb2xhLCAyMCk7CiAgICBlbmNvbGFyKCZtaUNvbGEsIDMwKTsKICAgIGVuY29sYXIoJm1pQ29sYSwgNDApOwogICAgCiAgICBpbXByaW1pckNvbGEoJm1pQ29sYSk7CiAgICAKICAgIHJldHVybiAwOwp9Cg==