Estructuras de Datos
![]() |
![]() |
![]() |
Título del Test:![]() Estructuras de Datos Descripción: Tema 4: Matrices y Conjuntos de Bits |




Comentarios |
---|
NO HAY REGISTROS |
Una matriz es un array unidimensional que utiliza un único índice para acceder a sus elementos. Verdadero. Falso. Las matrices, al igual que los vectores, almacenan elementos de diferentes tipos en la misma zona de memoria. Verdadero. Falso. Una matriz se puede considerar tanto un contenedor de datos como un objeto matemático. Verdadero. Falso. Una matriz de tamaño (3x4) tiene 4 filas y 3 columnas. Verdadero. Falso. Las matrices representan una zona contigua de memoria, al igual que los vectores. Verdadero. Falso. El operador de asignación (operator=) proporcionado por el compilador siempre es válido para todos los casos. Verdadero. Falso. Sobrecargar el operator= es necesario cuando se manejan recursos dinámicos como punteros. Verdadero. Falso. El operator= sobrecargado debe eliminar la instancia anterior antes de copiar los datos de la nueva. Verdadero. Falso. El operador = hace que el objeto *this sea un clon del objeto original (orig). Verdadero. Falso. Si no se sobrecarga el operator=, el compilador siempre generará uno que hace una copia profunda por defecto. Verdadero. Falso. Una matriz puede utilizarse únicamente como contenedor de datos, sin necesidad de aplicar operaciones matemáticas sobre ella. Verdadero. Falso. Si se desea usar una matriz como contenedor especializado, se puede rediseñar su comportamiento mediante técnicas como la composición o herencia en C++. Verdadero. Falso. En C++, la única manera de personalizar una matriz como contenedor de datos es mediante herencia. Verdadero. Falso. Una matriz utilizada como contenedor puede almacenar objetos complejos, no solo valores numéricos. Verdadero. Falso. Usar una matriz como contenedor especializado en C++ no permite modificar su comportamiento predeterminado. Verdadero. Falso. Un conjunto se caracteriza por permitir elementos repetidos y con un orden definido. Verdadero. Falso. La expresión x ∈ P significa que el elemento x pertenece al conjunto P. Verdadero. Falso. El conjunto vacío se denota por P = ∅, lo que significa que P no contiene ningún elemento. Verdadero. Falso. La unión de dos conjuntos P ⋃ Q contiene solo los elementos que están en ambos conjuntos. Verdadero. Falso. La operación P ⋂ Q devuelve los elementos que están tanto en P como en Q. Verdadero. Falso. La expresión P - Q representa los elementos que están en Q pero no en P. Verdadero. Falso. Si P ⊆ Q, entonces todos los elementos de P también están en Q. Verdadero. Falso. La implementación más intuitiva de un conjunto es mediante un array unidimensional. Verdadero. Falso. Un array unidimensional es una estructura de datos ideal para representar conjuntos porque permite elementos repetidos. Verdadero. Falso. Al usar un array unidimensional para implementar un conjunto, el orden de los elementos no es relevante. Verdadero. Falso. Los arrays unidimensionales para conjuntos siempre garantizan la eficiencia en operaciones como la búsqueda o inserción. Verdadero. Falso. Al realizar operaciones entre conjuntos, el conjunto resultado puede contener elementos repetidos. Verdadero. Falso. Es necesario implementar mecanismos que eviten la repetición de elementos cuando se realizan uniones o intersecciones entre conjuntos. Verdadero. Falso. La resta entre conjuntos no requiere preocuparse por la repetición de elementos en el conjunto resultado. Verdadero. Falso. Si una operación de conjunto genera elementos duplicados en el resultado, el resultado sigue siendo un conjunto válido. Verdadero. Falso. La implementación de conjuntos con arrays unidimensionales es eficiente para las operaciones de unión, intersección y diferencia, ya que todas estas operaciones tienen un tiempo lineal. Verdadero. Falso. Los conjuntos de bits (bitsets) son una mejor implementación para conjuntos de enteros cuando el rango máximo de valores es acotado y relativamente pequeño. Verdadero. Falso. En un conjunto de bits, el estado del bit i-ésimo indica si el entero i pertenece al conjunto. Verdadero. Falso. Los conjuntos de bits no son útiles para representar conjuntos con un rango de enteros muy grande debido al alto consumo de memoria. Verdadero. Falso. Las operaciones bit a bit en los conjuntos de bits permiten realizar la unión, intersección y diferencia en tiempo constante, independientemente del tamaño del conjunto. Verdadero. Falso. Para implementar un conjunto de bits se utiliza un vector de bytes, donde cada byte contiene 8 bits. Verdadero. Falso. Para localizar el bit asociado al entero n en un bitset, se calcula el índice del byte con n % 8 y el bit dentro del byte con n / 8. Verdadero. Falso. La operación de unión entre dos conjuntos de bits P y Q se realiza bit a bit con el operador OR (|). Verdadero. Falso. La intersección de conjuntos P y Q se calcula mediante el operador AND (&) aplicado a cada bit correspondiente. Verdadero. Falso. La diferencia de conjuntos P - Q se calcula aplicando la operación pi & ~qi para cada bit i. Verdadero. Falso. Las operaciones de unión, intersección y diferencia se aplican a cada bit desde 0 hasta el máximo tamaño entre los dos conjuntos. Verdadero. Falso. La implementación de un bitset es similar a la de un vector de caracteres (char). Verdadero. Falso. El tamaño físico de un bitset es 8 veces mayor que su tamaño lógico. Verdadero. Falso. La implementación de conjuntos mediante vectores de bits permite realizar las operaciones de unión, resta e intersección en tiempo O(n). Verdadero. Falso. En una implementación con vectores de bits, la inserción, borrado y test de existencia se pueden hacer en tiempo constante O(1). Verdadero. Falso. La implementación de conjuntos con vectores de datos es más versátil pero menos eficiente, con operaciones de unión, resta e intersección en tiempo O(n²). Verdadero. Falso. En vectores de datos, la inserción, borrado y test de existencia se pueden realizar en tiempo O(1). Verdadero. Falso. Los vectores y matrices ocupan zonas contiguas de memoria y permiten acceso directo a los datos almacenados. Verdadero. Falso. La inserción en posiciones intermedias de un vector o matriz es muy eficiente y rápida. Verdadero. Falso. La búsqueda en un vector o matriz sin orden establecido puede ser ineficiente. Verdadero. Falso. Las listas enlazadas y los árboles almacenan sus elementos en espacios contiguos de memoria. Verdadero. Falso. Es posible implementar conjuntos utilizando los contenedores que ofrece la STL (Standard Template Library) en C++. Verdadero. Falso. En una lista enlazada, la inserción de un nuevo elemento en cualquier posición puede ser más eficiente que en un vector. Verdadero. Falso. Los árboles permiten búsquedas más rápidas que las listas enlazadas en promedio. Verdadero. Falso. El acceso directo a un elemento en una lista enlazada es tan eficiente como en un vector. Verdadero. Falso. Un std::vector de la STL mantiene sus elementos en memoria contigua. Verdadero. Falso. Un std::list de la STL implementa una lista enlazada doblemente ligada. Verdadero. Falso. Los árboles binarios de búsqueda de la STL permiten insertar y buscar elementos en tiempo constante O(1). Verdadero. Falso. Usar un std::set de la STL garantiza que los elementos estén ordenados automáticamente. Verdadero. Falso. std::unordered_set de la STL implementa un conjunto usando una tabla hash, sin ordenar los elementos. Verdadero. Falso. |