Podcast
Questions and Answers
¿Cuál de los siguientes factores se refiere a la capacidad del software para manejar entradas no esperadas?
¿Cuál de los siguientes factores se refiere a la capacidad del software para manejar entradas no esperadas?
¿Qué permite la extensibilidad en un software?
¿Qué permite la extensibilidad en un software?
¿Cuál es la función de las excepciones en un programa?
¿Cuál es la función de las excepciones en un programa?
En Java, ¿qué clase se utiliza como base para las excepciones?
En Java, ¿qué clase se utiliza como base para las excepciones?
Signup and view all the answers
¿Qué implica la portabilidad de un software?
¿Qué implica la portabilidad de un software?
Signup and view all the answers
¿Qué es una interfaz en programación orientada a objetos?
¿Qué es una interfaz en programación orientada a objetos?
Signup and view all the answers
¿Cuál de las siguientes opciones describe mejor la reusabilidad del código?
¿Cuál de las siguientes opciones describe mejor la reusabilidad del código?
Signup and view all the answers
¿Cuál es el propósito de una clase wrapper en programación?
¿Cuál es el propósito de una clase wrapper en programación?
Signup and view all the answers
¿Qué almacena un nodo interno en un árbol de expresión aritmética?
¿Qué almacena un nodo interno en un árbol de expresión aritmética?
Signup and view all the answers
¿Cuál es el propósito del algoritmo 'Evaluar(árbol_exp)'?
¿Cuál es el propósito del algoritmo 'Evaluar(árbol_exp)'?
Signup and view all the answers
¿Qué ocurre cuando se intenta agregar una raíz a un árbol que ya tiene una?
¿Qué ocurre cuando se intenta agregar una raíz a un árbol que ya tiene una?
Signup and view all the answers
En un árbol binario, ¿qué representa un nodo hoja?
En un árbol binario, ¿qué representa un nodo hoja?
Signup and view all the answers
¿Qué valor obtiene un nodo interno en un árbol al evaluarse?
¿Qué valor obtiene un nodo interno en un árbol al evaluarse?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre el árbol binario es correcta?
¿Cuál de las siguientes afirmaciones sobre el árbol binario es correcta?
Signup and view all the answers
¿Qué método se utiliza para probar si un nodo tiene un hijo izquierdo?
¿Qué método se utiliza para probar si un nodo tiene un hijo izquierdo?
Signup and view all the answers
¿Qué error ocurre al eliminar un nodo que tiene dos hijos en un árbol binario?
¿Qué error ocurre al eliminar un nodo que tiene dos hijos en un árbol binario?
Signup and view all the answers
¿Cuál es la función principal de 'remove(k)' en un diccionario?
¿Cuál es la función principal de 'remove(k)' en un diccionario?
Signup and view all the answers
¿Qué método se utiliza para verificar si un diccionario está vacío?
¿Qué método se utiliza para verificar si un diccionario está vacío?
Signup and view all the answers
¿Qué es una tabla hash?
¿Qué es una tabla hash?
Signup and view all the answers
En los diccionarios no ordenados, ¿cómo se comparan las claves?
En los diccionarios no ordenados, ¿cómo se comparan las claves?
Signup and view all the answers
¿Qué operación retorna un iterador de las claves en un diccionario?
¿Qué operación retorna un iterador de las claves en un diccionario?
Signup and view all the answers
¿Qué se entiende por 'hash abierto' en el contexto de tablas hash?
¿Qué se entiende por 'hash abierto' en el contexto de tablas hash?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones es incorrecta sobre la operación 'find(k)'?
¿Cuál de las siguientes afirmaciones es incorrecta sobre la operación 'find(k)'?
Signup and view all the answers
¿Qué sucede cuando se utiliza el método 'insert(k,v)' en un diccionario?
¿Qué sucede cuando se utiliza el método 'insert(k,v)' en un diccionario?
Signup and view all the answers
¿Cuál es la característica clave de un árbol AVL?
¿Cuál es la característica clave de un árbol AVL?
Signup and view all the answers
¿Qué se debe verificar al realizar la eliminación en un árbol AVL?
¿Qué se debe verificar al realizar la eliminación en un árbol AVL?
Signup and view all the answers
¿Cuál es el resultado de una rotación doble izquierda en un árbol AVL?
¿Cuál es el resultado de una rotación doble izquierda en un árbol AVL?
Signup and view all the answers
¿Cuál es la función de la segunda función hash H2 en el hashing doble?
¿Cuál es la función de la segunda función hash H2 en el hashing doble?
Signup and view all the answers
¿Qué operación se modifica en un árbol AVL cuando se inserta un nodo nuevo?
¿Qué operación se modifica en un árbol AVL cuando se inserta un nodo nuevo?
Signup and view all the answers
En una función hash, ¿cuál es una opción común para H2(k)?
En una función hash, ¿cuál es una opción común para H2(k)?
Signup and view all the answers
¿Qué tipo de árboles son los árboles AVL?
¿Qué tipo de árboles son los árboles AVL?
Signup and view all the answers
¿Qué significa O(log2(n)) en el contexto de árboles binarios de búsqueda?
¿Qué significa O(log2(n)) en el contexto de árboles binarios de búsqueda?
Signup and view all the answers
¿Cuál es la complejidad del algoritmo Merge Sort en el peor de los casos?
¿Cuál es la complejidad del algoritmo Merge Sort en el peor de los casos?
Signup and view all the answers
¿Qué caracteriza al algoritmo Heap Sort?
¿Qué caracteriza al algoritmo Heap Sort?
Signup and view all the answers
En el peor de los casos, ¿cuál es la complejidad del algoritmo Quick Sort?
En el peor de los casos, ¿cuál es la complejidad del algoritmo Quick Sort?
Signup and view all the answers
¿Qué permite hacer un archivo de acceso directo?
¿Qué permite hacer un archivo de acceso directo?
Signup and view all the answers
¿Cuál es la función del algoritmo seek en relación con los archivos?
¿Cuál es la función del algoritmo seek en relación con los archivos?
Signup and view all the answers
¿Qué implica la serialización de un objeto?
¿Qué implica la serialización de un objeto?
Signup and view all the answers
En la implementación de archivos indexados, ¿qué tipo de archivos son necesarios?
En la implementación de archivos indexados, ¿qué tipo de archivos son necesarios?
Signup and view all the answers
En Quick Sort, ¿cómo se determina el punto de división del arreglo?
En Quick Sort, ¿cómo se determina el punto de división del arreglo?
Signup and view all the answers
¿Cuál es una desventaja del uso de un arreglo ordenado?
¿Cuál es una desventaja del uso de un arreglo ordenado?
Signup and view all the answers
¿Qué característica define al árbol B+?
¿Qué característica define al árbol B+?
Signup and view all the answers
¿Qué tipo de complejidad tienen los árboles AVL y 2-3 para buscar y actualizar?
¿Qué tipo de complejidad tienen los árboles AVL y 2-3 para buscar y actualizar?
Signup and view all the answers
¿Cuál es una ventaja de usar pilas en estructuras de datos?
¿Cuál es una ventaja de usar pilas en estructuras de datos?
Signup and view all the answers
¿Qué aspecto negativo se relaciona con la estructura de un árbol binario?
¿Qué aspecto negativo se relaciona con la estructura de un árbol binario?
Signup and view all the answers
¿Qué propiedad caracteriza al árbol B?
¿Qué propiedad caracteriza al árbol B?
Signup and view all the answers
¿Cuál es la desventaja principal de usar un arreglo no ordenado?
¿Cuál es la desventaja principal de usar un arreglo no ordenado?
Signup and view all the answers
¿Cuál es la principal ventaja de usar un árbol Red-Black?
¿Cuál es la principal ventaja de usar un árbol Red-Black?
Signup and view all the answers
Study Notes
Factores de Calidad
- Factores externos: Características de calidad del software visibles al usuario, sin necesidad de conocer el código fuente.
- Factores internos: Características de calidad del software visibles al programador, que implica conocer el código fuente.
- Corrección: El programa produce la salida esperada para entradas dadas, cumpliendo con la especificación.
- Robustez: Capacidad del programa para manejar entradas inesperadas o no contempladas, respondiendo adecuadamente (no colapsando).
- Extensibilidad: Facilidad para añadir nuevas funcionalidades al software sin afectar el funcionamiento existente.
- Portabilidad: Adaptabilidad del software a diferentes entornos de hardware o sistemas operativos con poco o ningún cambio.
- Reutilización: Posibilidad de utilizar el código fuente en otros programas, para generar código ya existente y ahorrar tiempo.
- Eficiencia: Requiere pocos recursos informáticos (CPU y memoria), ejecutando tareas rápidamente.
- Facilidad de uso: Intuitividad y facilidad de manejo para usuarios con diferentes niveles de experiencia.
Excepciones
- Excepciones: Eventos inesperados durante la ejecución de un programa, como errores o entradas incorrectas.
- Manejo de excepciones (POO): En la programación orientada a objetos, las excepciones son objetos que indican una condición inesperada. Otros módulos del programa capturan la excepción y reparan la situación.
-
Excepciones en Java: Las excepciones en Java son subclases de la clase
Exception
. Los métodos deben especificar en su signatura las excepciones que pueden lanzar. Las excepciones se lanzan con la sentencia "throw".
Interfaces
- Interfaces: Una colección de declaraciones de métodos sin atributos, que serán implementadas por una o más clases. Las clases que implementan la interfaz deben implementar todos los métodos definidos por la interfaz.
Clases Wrapper
- Clases Wrapper: Facilitan tratar datos primitivos (int, boolean, etc.) como objetos. Se utilizan por razones de tipo y polimorfismo.
Genericidad
- Genericidad: Mecanismo para crear estructuras de datos y clases cuya funcionalidad es independiente del tipo de datos que contienen.
- Parametrización: Se establece un tipo variable durante la compilación para crear un esquema genérico.
Estructuras de Datos
- Estructura de datos: Forma de organizar un conjunto de datos para facilitar su manipulación y acceso tanto global como particular.
Algoritmos
- Algoritmo: Conjunto de pasos bien definidos para realizar una tarea específica en tiempo finito.
- Orden de tiempo de un algoritmo: Función T(n) que representa el tiempo de ejecución del algoritmo en función del tamaño de la entrada (n)
- Notación asintótica (big-oh): Descripción del comportamiento de un algoritmo (i.e., crecimiento del tiempo de ejecución) a medida que la entrada crece.
Secuencias
- Secuencia: Una colección ordenada de elementos homogéneos (del mismo tipo).
- Ventajas de las listas en arreglos: Residencia principal de memoria, recuperación de componentes constante (O(1)),
- Desventajas de las listas en arreglos: Tamaño máximo definido, inserción/eliminación de elementos en orden lineal (O(n))
Pilas
- TDA Pila: Una colección de objetos actualizada siguiendo una política LIFO (último en entrar, primero en salir).
- Operaciones de Pila: Push(e) – inserta un elemento e en la cima, Pop() – elimina y devuelve el elemento superior, isEmpty()- retorna verdadero si la pila está vacía, top() – devuelve el elemento superior sin eliminarlo, size() - devuelve el número de elementos.
Colas
- TDA Cola: Una colección de objetos actualizada siguiendo una política FIFO (primero en entrar, primero en salir).
- Operaciones de Cola: Enqueue(e) – inserta un elemento e al final, Dequeue() – elimina y devuelve el elemento del principio, isEmpty() – retorna verdadero si la cola está vacía, Front() – devuelve el elemento del principio sin eliminarlo, size() - devuelve el número de elementos.
Listas Enlazadas
- Lista enlazada: Una secuencia que contiene estructuras de datos donde cada elemento apunta al siguiente elemento.
Árboles
- Árbol: Un tipo de estructura de datos que organiza los elementos jerárquicamente.
- Nodo hoja: Un nodo sin hijos en un árbol.
- Nodo interno: Un nodo que posee uno o más nodos hijos en un árbol.
- Raíz: El nodo superior de un árbol.
- Hijos de un nodo: Los nodos que están directamente conectados al nodo.
- Padre de un nodo: El nodo que se encuentra encima de otro nodo.
- Hermano de un nodo: Un nodo que tiene el mismo padre que otro nodo.
- Recorridos de un árbol: Forma sistemática de visitar los nodos del árbol (preorden, postorden, inorden y por niveles).
- Altura de un árbol: Longitud del camino más largo desde la raíz a una hoja.
Árboles Binarios de Búsqueda
- Árbol binario de búsqueda (ABB): Una estructura de datos jerarquizada en forma de árbol en la que cada nodo tiene como máximo 2 hijos.
- Propiedad de los ABB: Para cada nodo v, todos los valores en el subárbol izquierdo están por debajo de v y los valores en el subárbol derecho están por encima de v.
- Operaciones: Buscar, eliminar e insertar un nodo.
Árboles Binarios
- Árbol binario: Estructura de datos jerarquizada en la que cada nodo tiene como máximo dos nodos hijos.
- Ordenamiento: Orden que deben cumplir los nodos hijos de un nodo.
- Hijos: Los nodos inmediatos que descienden de un nodo padre.
Árboles AVL
- Árbol AVL: Árbol binario de búsqueda equilibrado. Se auto-equilibra para evitar problemas de rendimiento.
Árboles 2-3-4
- Árbol 2-3-4: Árbol de búsqueda que generaliza la idea de los árboles 2-3, permitiendo un número variable de claves por nodo.
Tabla Hash
- Tabla Hash: Estructura de datos que implementa mapeos. Puede proveer búsquedas/inserciones/eliminaciones en tiempo promedio O(1)
Heap
- Heap: Estructura de datos que busca el elemento de mayor prioridad.
Grafos
- Grafo: Conjunto de vértices y aristas (con o sin dirección). Pueden ser dirigidos y no dirigidos.
- Vértices: Puntos del grafo.
- Aristas: Conexiones entre vértices.
- Grado (de un vértice): Cantidad de aristas conectadas a un vértice.
Recorridos de Grafos
- DFS(Depth-First Search): Algoritmo recursivo para recorrer un grafo.
- BFS (Breadth-First Search): Algoritmo no recursivo para recorrer un grafo que visita todos los nodos adyacentes antes de pasar a los siguientes niveles.
- Recorrido por niveles: Se visita a todos los nodos de un mismo nivel antes de visitar los del siguiente.
Camminos en Grafos
- Camino: Secuencia de vértices y aristas que conecta dos vértices.
- Camino de costo mínimo: El algoritmo de Dijkstra busca el camino más corto entre dos vértices dados en un grafo, considerando las aristas ponderadas (con costo).
- Camino entre todos los vértices: El algoritmo de Floyd-Warshall permite hallar el camino más corto entre todos los pares de vértices en un grafo ponderado.
Serialización
- Serialización: Proceso de convertir el estado de un objeto en un formato que puede ser almacenado y recuperado.
- Archivos de acceso directo: Permiten acceder a cualquier registro sin necesidad de leer los anteriores. Se puede utilizar en archivos indexados.
- Archivos indexados: Se utiliza un índice (tabla) para acceder rápidamente a los datos.
Compresión de Datos
- Compresión de datos: Reducción del tamaño de un archivo, manteniendo la información original.
- Compresión con pérdida: Se pierde información durante el proceso de compresión.
- Compresión sin pérdida: No se pierde información durante el proceso de compresión.
- Algoritmo Huffman: Algoritmo de compresión (sin pérdida) que asigna códigos a los caracteres de acuerdo a su frecuencia.
Árbol B y B+
- Árbol B: Generalización del árbol 2-3, permitiendo un número variable de claves por nodo. Propiedades: todos los nodos a la misma profundad tienen el mismo número de claves.
- Árbol B+: Similar al árbol B, pero los nodos internos solo contienen claves, lo que mejora las operaciones de recorrido.
Ordenamiento
- Algoritmos de Ordenamiento: Métodos para ordenar una secuencia de elementos. Se diferencian por tiempo de ejecución, uso de memoria y complejidad.
- Bubble Sort: Ordenamiento que recorre el arreglo y compara elementos adyacentes intercambiándolos si están fuera de orden.
- Insertion Sort: Ordenamiento que inserta un elemento en la posición correcta en una secuencia organizada de manera creciente.
- Merge Sort: Divide y ordena – método recursivo que divide un arreglo en subconjuntos más pequeños, los ordena y luego los combina.
- Heap Sort: Método que utiliza una cola con prioridades para ordenar un arreglo.
- Quick Sort: Divide y ordena – método recursivo que elige un elemento como pivote y divide el arreglo en dos subarreglos, unos menores y otros mayores que el pivote.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Este cuestionario cubre conceptos clave de programación orientada a objetos en Java, incluidos excepciones, reusabilidad, y estructuras de datos como árboles. Responde preguntas sobre la extensibilidad, portabilidad, e interfaces en el desarrollo de software.