fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. // Definición de la estructura de un nodo
  5. typedef struct Nodo {
  6. int dato;
  7. struct Nodo *siguiente;
  8. } Nodo;
  9.  
  10. // Definición de la estructura de la cola
  11. typedef struct Cola {
  12. Nodo *frente;
  13. Nodo *final;
  14. } Cola;
  15.  
  16. // Función para inicializar una cola
  17. void inicializarCola(Cola *cola) {
  18. cola->frente = NULL;
  19. cola->final = NULL;
  20. }
  21.  
  22. // Función para insertar un elemento en la cola
  23. void encolar(Cola *cola, int valor) {
  24. Nodo *nuevoNodo = (Nodo *)malloc(sizeof(Nodo));
  25. if (!nuevoNodo) {
  26. printf("Error: No se pudo asignar memoria\n");
  27. return;
  28. }
  29. nuevoNodo->dato = valor;
  30. nuevoNodo->siguiente = NULL;
  31.  
  32. if (cola->final == NULL) { // Si la cola está vacía
  33. cola->frente = nuevoNodo;
  34. } else {
  35. cola->final->siguiente = nuevoNodo;
  36. }
  37. cola->final = nuevoNodo;
  38. }
  39.  
  40. // Función para imprimir la cola
  41. void imprimirCola(Cola *cola) {
  42. Nodo *actual = cola->frente;
  43. printf("Cola: ");
  44. while (actual) {
  45. printf("%d -> ", actual->dato);
  46. actual = actual->siguiente;
  47. }
  48. printf("NULL\n");
  49. }
  50.  
  51. // Función principal
  52. int main() {
  53. Cola miCola;
  54. inicializarCola(&miCola);
  55.  
  56. printf("\n--- Implementación de una cola con apuntadores ---\n");
  57. printf("Autor: [Tu Nombre]\n\n");
  58.  
  59. encolar(&miCola, 10);
  60. encolar(&miCola, 20);
  61. encolar(&miCola, 30);
  62. encolar(&miCola, 40);
  63.  
  64. imprimirCola(&miCola);
  65.  
  66. return 0;
  67. }
  68.  
Success #stdin #stdout 0s 5288KB
stdin
45
stdout
--- Implementación de una cola con apuntadores ---
Autor: [Tu Nombre]

Cola: 10 -> 20 -> 30 -> 40 -> NULL