option
Cuestiones
ayuda
daypo
buscar.php

Estructura de datos

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
Estructura de datos

Descripción:
Evaluar los conocimiemtos aprendidos en clase

Fecha de Creación: 2025/05/05

Categoría: Informática

Número Preguntas: 25

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

¿Qué es una estructura de datos y por qué es importante en programación?. Una estructura de datos es una forma de organizar y almacenar datos para que puedan ser utilizados eficientemente; en Python, listas, diccionarios y tuplas son ejemplos comunes. Es un tipo de dato como int o float, no tiene relación con la organización de datos. Solo se usa en lenguajes de bajo nivel, en Python no son necesarias. Sirve para que el programa sea más largo y difícil de leer.

Explica la diferencia entre estructuras lineales y no lineales, dando ejemplos de cada una. Las estructuras lineales como listas y pilas almacenan datos en secuencia; las no lineales como árboles y grafos permiten relaciones jerárquicas o múltiples caminos. Lineales tienen más datos y no lineales menos. No existen estructuras no lineales en Python. Las lineales siempre son arrays y las no lineales solo listas.

¿Cuál es la diferencia entre un array y una lista enlazada en términos de memoria y operaciones?. Ambos ocupan la misma memoria y se usan igual. Los arrays son más lentos porque usan punteros. Las listas enlazadas no se pueden usar en Python. Un array usa memoria contigua y permite acceso rápido por índice, mientras que una lista enlazada almacena elementos por nodos conectados, facilitando inserciones/eliminaciones.

¿Qué ventajas tiene una lista doblemente enlazada frente a una simplemente enlazada?. Se usa solo para ahorrar memoria. Permite recorrer en ambas direcciones y facilita eliminaciones en medio de la lista. Es más rápida siempre que la simple. No se puede implementar en Python.

Describe el funcionamiento de una pila (stack) y menciona dos casos de uso práctico. Es una estructura LIFO (último en entrar, primero en salir); se usa en el manejo de llamadas recursivas y deshacer acciones. Siempre guarda elementos en orden alfabético. Se usa solo para imprimir listas. Los stacks solo funcionan en C, no en Python.

¿Cómo implementarías una cola (queue) usando dos pilas? Explica el proceso paso a paso. No se puede hacer en Python sin librerías externas. Usas un diccionario y una lista al mismo tiempo. Solo necesitas una pila que actúe como cola. Usas dos pilas, una para inserciones (push) y otra para eliminaciones (pop); si la segunda está vacía, pasas los elementos desde la primera para invertir el orden.

Define qué es un árbol binario y en qué se diferencia de un árbol binario de búsqueda (BST). Ambos son iguales y sirven para lo mismo. Un árbol binario no tiene nodos hijos. Árbol binario tiene máximo 2 hijos por nodo; un BST mantiene los valores menores a la izquierda y mayores a la derecha. El BST solo existe en bases de datos.

Explica los recorridos in-order, pre-order y post-order en un árbol binario. In-order: izquierda, raíz, derecha; pre-order: raíz, izquierda, derecha; post-order: izquierda, derecha, raíz. Todos recorren de raíz a hoja siempre. El in-order imprime el árbol al revés. No hay diferencia entre los tres métod.

¿Qué es un grafo dirigido y cómo se representa en memoria (matriz de adyacencia vs. lista de adyacencia)?. La matriz siempre es mejor que cualquier otro método. No hay grafos dirigidos en estructuras de datos. Solo se puede representar con listas. Un grafo dirigido tiene aristas con dirección; se representa con matriz (2D) o lista de adyacencia (diccionario de listas en Python).

Describe el algoritmo BFS (Breadth-First Search) y su complejidad temporal. Explora nodos por niveles usando una cola; su complejidad es O(V + E) (V = vértices, E = aristas). Usa una pila y va de hoja a raíz. Siempre toma tiempo O(n²). Solo se usa en árboles binarios.

¿Cómo funciona una tabla hash y qué operaciones permite (inserción, búsqueda, eliminación)?. Asocia claves a valores usando una función hash; permite insertar, buscar y eliminar en tiempo O(1) promedio. Solo sirve para ordenar números. Es igual a un array pero con strings. No se puede eliminar nada de una tabla hash.

Explica el problema de las colisiones y dos métodos para manejarlas. Ocurren cuando dos claves tienen el mismo hash; se manejan con encadenamiento o direccionamiento abierto (open addressing). Las colisiones solo aparecen en listas. No afectan el rendimiento de la tabla. Se evitan cambiando de lenguaje.

¿Qué es un heap (montículo) y cómo se relaciona con la implementación de priority queues?. No tiene relación con colas de prioridad. Solo sirve para operaciones matemáticas. Es como un array ordenado. Es un árbol binario completo donde el padre es mayor (max-heap) o menor (min-heap) que sus hijos; se usa para implementar colas de prioridad.

Describe el proceso de heapify para convertir un array en un max-heap. Solo inviertes el array. Ordenas el array con bubble sort. Se aplica desde la mitad del array hacia atrás, ajustando cada subárbol para que cumpla la propiedad de heap. Se hace sumando todos los elementos.

Compara Merge Sort y Quick Sort en términos de complejidad temporal y espacial. Merge Sort: O(n log n) en todos los casos, usa más espacio; Quick Sort: promedio O(n log n), peor caso O(n²), menos espacio. Merge Sort es siempre más lento. Quick Sort no necesita recursividad. Ambos tienen peor caso O(1).

¿Cuál es la estructura de un bucle for en Python?. for elemento in iterable:\n # código. loop cada elemento en iterable:. para elemento in rango:. for (int i = 0; i < n; i++).

¿Qué hace la instrucción break en un bucle?. Reinicia el bucle desde el inicio. Continúa con la siguiente iteración. Termina el bucle inmediatamente. Es igual que pass.

¿Cuál es la diferencia entre break y continue?. break repite el bucle y continue lo detiene. break sale del bucle; continue salta a la siguiente iteración. continue se usa solo con if. No hay diferencia, hacen lo mismo.

¿Qué estructura de control usarías para repetir un bloque hasta que se cumpla una condición?. Una expresión lambda. Una función recursiva. Una condición if. Un bucle while.

¿Qué ocurre si un bucle while nunca deja de cumplirse?. El programa ignora el bucle. El código se ejecuta una sola vez. El programa entra en un bucle infinito. Python cierra el programa automáticamente.

¿Cuál de las siguientes estructuras en Python es mutable?. Lista (list). Tupla (tuple). Cadena (str). Entero (int).

¿Qué estructura de datos en Python almacena pares clave-valor?. Lista (list). Conjunto (set). Tupla (tuple). Diccionario (dict).

¿Cuál es la principal característica de un set en Python?. Almacena datos ordenados. Acepta claves y valores. No permite elementos duplicados. Se define usando corchetes [].

¿Qué función se usa para agregar un elemento al final de una lista?. add(). append(). insert(). extend().

¿Qué ocurre si intentas modificar un valor dentro de una tupla?. Se produce un error porque las tuplas son inmutables. El valor se modifica sin problema. Se reemplaza automáticamente por None. Se convierte en lista automáticamente.

Denunciar Test