Laboratorio de memoria y punteros en C
Cola
Acerca de esta estructura
Estructura FIFO para encolar y desencolar elementos.
1 Preparar
2 Visualizar y ejecutar
Código C: Encolar
void cola_encolar(struct Cola *q, int valor) {
if (q == NULL) {
printf("Error: cola no inicializada.\n");
return;
}
struct NodoCola *aux = (struct NodoCola *) malloc(sizeof(struct NodoCola));
if (aux == NULL) {
printf("Error: no se pudo asignar memoria.\n");
return;
}
aux->nro = valor;
aux->sgte = NULL;
if (q->delante == NULL) {
q->delante = aux; // Primer elemento encolado
} else {
q->atras->sgte = aux;
}
q->atras = aux; // Siempre apunta al último
}3 Controlar la ejecución
Ejecutar operación inicia una nueva operación. Activa Paso a paso antes de ejecutarla; navegar y cerrar el modo no repiten la operación.
Actual: +0.00x (1.00x real)
Paso 0 · sin función · sin fase · sin concepto
Paso: 0/0
2 Predecir
Activa preguntas, elige Paso a paso y prepara una operación. En las decisiones importantes podrás responder antes de ver el cambio.
4 Comprender
Referencia completa de la estructura
Estructura FIFO (First In, First Out): el primer nodo en entrar queda al frente y sale primero. En la animación revisa las reasignaciones de frente/atrás y verifica que al quedar vacía ambos extremos vuelvan al estado nulo.
Condición y ciclo
Variables C
Punteros y enlaces
Heap y memoria
Pila de llamadas
5 Comparar conceptos
Selecciona una comparación para trabajar sobre dos copias independientes de la misma secuencia.
5 Resultados de ejecución
Consola C (printf)
Seguimiento de operaciones
Estructura del TAD
struct NodoCola {
int nro; /**< Dato entero almacenado. */
struct NodoCola *sgte; /**< Enlace al siguiente nodo. */
};
struct Cola {
struct NodoCola *delante; /**< Primer nodo de la cola. */
struct NodoCola *atras; /**< Último nodo de la cola. */
};