¿Qué es un Tipo de Dato Abstracto (ADT)?
Un modelo que define las operaciones y comportamiento de una estructura sin detallar su implementación técnica.
¿Cuál es la propiedad fundamental de una cola (queue)?
FIFO (First In, First Out): el primer elemento en entrar es el primero en salir.
En una cola, ¿cómo se llama la operación de ponerse en línea?
Enqueue.
En una cola, ¿cómo se llama la operación de salir de la línea por el frente?
Dequeue.
¿Cuál es la propiedad fundamental de una pila (stack)?
LIFO (Last In, First Out): el último elemento en entrar es el primero en salir.
¿Qué término se usa para añadir un elemento a la parte superior de una pila?
Push.
¿Qué término se usa para remover el elemento superior de una pila?
Pop.
¿Cuál es la principal limitación de implementar colas o pilas mediante arreglos estáticos?
Tienen una capacidad fija determinada en el momento de la compilación.
¿Qué significa que los valores en un arreglo sean ‘contiguos’ en memoria?
Que los datos se almacenan uno inmediatamente después del otro en direcciones de memoria consecutivas.
¿Cuál es el beneficio de usar Python en lugar de C según la lección?
Permite resolver problemas más rápido como humanos, aunque la ejecución del código puede ser más lenta.
¿Qué par de conceptos componen la estructura de un diccionario?
Llave (key) y Valor (value).
La función malloc devuelve _____ si no puede asignar la memoria solicitada.
NULL
¿Por qué es peligroso asignar un nuevo valor a un puntero de malloc sin liberar el anterior?
Se produce una fuga de memoria (memory leak) al perder la dirección del bloque original.
¿Qué hace la función realloc en C?
Redimensiona un bloque de memoria previamente asignado, intentando expandirlo o copiándolo a una nueva ubicación.
¿Qué es un ‘nodo’ en el contexto de las estructuras de datos?
Un contenedor que incluye datos y metadatos (como punteros a otros nodos).
¿Cuáles son los dos campos básicos de un nodo en una lista enlazada (linked list)?
El dato (como un entero) y un puntero al siguiente nodo (next).
¿Cómo se indica el final de una lista enlazada en C?
Asignando el valor NULL al puntero next del último nodo.
¿Cuál es el tiempo de ejecución de búsqueda en una lista enlazada de tamaño $n$?
$O(n)$
¿Qué operador de C se utiliza para acceder a un campo de una estructura a través de un puntero?
El operador flecha (->).
En una lista enlazada, la operación de inserción al inicio (prepend) tiene un tiempo de ejecución de _____.
$O(1)$
¿Por qué no se puede realizar una búsqueda binaria eficiente en una lista enlazada estándar?
Porque no se puede acceder directamente al elemento central sin recorrer la lista secuencialmente.
¿Qué es la ‘raíz’ (root) en una estructura de árbol?
El nodo superior desde el cual se originan todos los demás nodos.
¿Qué define a un Árbol Binario de Búsqueda (BST)?
Cada nodo tiene un hijo izquierdo menor y un hijo derecho mayor que él mismo.
¿Cuál es el tiempo de ejecución promedio para buscar en un BST balanceado?
$O(\log n)$