Laboratorio de árboles y montículos en C
ABB
Árbol Binario de Búsqueda sin duplicados.
1 Preparar
Los ejemplos construyen el estado mediante operaciones públicas reales.
2 Predecir
Formula una hipótesis antes de revelar el siguiente frame canónico.
Progreso conceptual de esta sesión: 0 aciertos de 0 intentos.
3 Ejecutar y visualizar
Codigo C: Insertar
/**
* @brief Inserta un valor en el árbol binario de búsqueda.
* @param nodo Puntero a la raíz del árbol.
* @param valor Valor a abb_insertar.
* @return Puntero a la raíz actualizada.
*/
ABBNodo* abb_insertar(ABBNodo* nodo, int valor) {
if (nodo == NULL) {
ABBNodo* nuevo = malloc(sizeof *nuevo);
if (nuevo == NULL) {
return NULL;
}
nuevo->valor = valor;
nuevo->izquierdo = nuevo->derecho = NULL;
return nuevo;
}
if (valor < nodo->valor)
nodo->izquierdo = abb_insertar(nodo->izquierdo, valor);
else if (valor > nodo->valor)
nodo->derecho = abb_insertar(nodo->derecho, valor);
return nodo;
}3 Controlar la ejecución
Actual: +0.00x (1.00x real)
Función: — · Profundidad: — · Fase: — · Concepto: —
Paso: 0/0
4 Comprender
Arbol binario de busqueda sin duplicados: todo valor menor va al subarbol izquierdo y todo valor mayor al derecho. En la simulacion revisa la ruta de comparaciones y confirma que la propiedad de orden se preserve despues de cada insercion o eliminacion.
Condición, ruta y caso
Pila recursiva y retornos
Invariante y evidencia
Variables C
Memoria y enlaces
Relaciones estructurales
6 Comparar
Ambos lados reciben copias independientes de la misma entrada inmutable.
Prepara una comparación para estudiar forma, altura, ajustes, costo e invariante.
7 Reflexionar
Consola C (printf)
Historial
Estructura del TAD
typedef struct ABBNodo {
int valor;
struct ABBNodo *izquierdo;
struct ABBNodo *derecho;
} ABBNodo;