Laboratorio de memoria y punteros en C
Lista Enlazada
Secuencia de nodos con operaciones por posición y valor.
1 Preparar
Los ejemplos usan las mismas operaciones públicas del TAD.
2 Predecir
Antes de ejecutar, identifica qué extremo, enlace o puntero debería cambiar y qué invariante debe conservarse.
3 Ejecutar y visualizar
Codigo C: Insertar inicio
/**
* @brief Inserta un nuevo nodo al inicio de la lista.
* @param lista Puntero a la lista.
* @param valor Valor entero a insertar.
*/
void lista_insertar_inicio(Tlista *lista, int valor) {
if (lista == NULL) {
return;
}
Tlista q = CrearNodoLista(valor);
if (q == NULL) {
return;
}
q->sgte = *lista;
*lista = q;
}3 Controlar la ejecución
Actual: +0.00x (1.00x real)
Paso 0 · sin función · sin fase · sin concepto
Paso: 0/0
4 Comprender
Secuencia lineal de nodos enlazados por referencias al siguiente. En el simulador debes seguir el avance de punteros auxiliares para inserciones/eliminaciones por posicion, verificando que el HEAD siempre conserve la conectividad de la lista.
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.
6 Reflexionar
Consola C (printf)
Historial de ejecución
Estructura del TAD
typedef struct NodoLista {
int nro;
struct NodoLista *sgte;
} *Tlista;