fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct Nodo {
  5. int dato;
  6. struct Nodo *siguiente;
  7. } Nodo;
  8.  
  9. typedef struct Cola {
  10. Nodo *frente;
  11. Nodo *final;
  12. } Cola;
  13.  
  14. void inicializarCola(Cola *cola) {
  15. cola->frente = NULL;
  16. cola->final = NULL;
  17. }
  18.  
  19. void encolar(Cola *cola, int valor) {
  20. Nodo *nuevoNodo = (Nodo *)malloc(sizeof(Nodo));
  21. if (!nuevoNodo) {
  22. printf("Error: No se pudo asignar memoria\n");
  23. return;
  24. }
  25. nuevoNodo->dato = valor;
  26. nuevoNodo->siguiente = NULL;
  27.  
  28. if (cola->final == NULL) {
  29. cola->frente = nuevoNodo;
  30. } else {
  31. cola->final->siguiente = nuevoNodo;
  32. }
  33. cola->final = nuevoNodo;
  34. }
  35.  
  36. void imprimirCola(Cola *cola) {
  37. Nodo *actual = cola->frente;
  38. printf("Cola: ");
  39. while (actual) {
  40. printf("%d -> ", actual->dato);
  41. actual = actual->siguiente;
  42. }
  43. printf("NULL\n");
  44. }
  45.  
  46. int main() {
  47. Cola miCola;
  48. inicializarCola(&miCola);
  49.  
  50. printf("\n--- Implementación de una cola con apuntadores ---\n");
  51. printf("Autor: Joel Quezada\n\n");
  52.  
  53. encolar(&miCola, 10);
  54. encolar(&miCola, 20);
  55. encolar(&miCola, 30);
  56. encolar(&miCola, 40);
  57.  
  58. imprimirCola(&miCola);
  59.  
  60. return 0;
  61. }
  62.  
Success #stdin #stdout 0.01s 5296KB
stdin
Standard input is empty
stdout
--- Implementación de una cola con apuntadores ---
Autor: Joel Quezada

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