En un árbol B, cualquier borrado implica acceder siempre a un nodo hoja. V F. En la dispersión abierta, el agrupamiento secundario no se produce, pero el primario sí. V F. La operación de liberar recursos al eliminar un árbol AVL es O(log n).
V F. En tablas de dispersión con cubetas, si al buscar llegamos a un hueco no siempre se detiene la búsqueda. V F. La búsqueda de un punto es siempre más eficiente en una malla regular que en un quadtree. V F. Un grafo poco denso(con pocas aristas entre vértices) es más eficiente en espacio el implementarlo utilizando listas de adyacencia que matrices. V F. Un heap puede no estar balanceado si los valores se insertan en orden contrario al que se desea recuperar. V F. Tanto las colas como las colas con prioridad se implementan igual de eficientes con vectores que con listas enlazadas. La única diferencia viene de si conocemos el tamaño máximo o no. V F. El deque permite inserciones eficientes en cualquier posición. V F. En las listas doblemente enlazadas, la inserción en la posición anterior a la apuntada por un iterador es O(1). V F. En un AVL puede haber un nodo hoja a profundidad 5, mientras otro se encuentra a profundidad 8. V F. Para eliminar la recursividad en el recorrido en anchura de un árbol hace falta utilizar una pila. V F. En una lista simplemente enlazada, eliminar el elemento que ocupa la cola requiere O(n) accesos.
V F. El fichero de índice sobre un archivo siempre contiene la misma información que el índice en memoria. V F. En una malla regular, acceder a la lista de elementos que están en una casilla es O(1). V F. La implementación de una cola con prioridad es igual de eficiente hacerlo mediante vectores que con listas simplemente enlazadas. V F. Obtener el valor de menor prioridad en un heap se puede realizar en tiempo constante O(1). V F. La dispersión doble ayuda a eliminar tanto los agrupamientos primarios como secundarios. V F. La implementación de matrices dispersas mediante listas comparado con vectores bidimensionales implica un ahorro de espacio pero es menos eficiente en los accesos. V F. En un quadtree, localizar el elemento más cercano a otro, como mucho implica acceder a los nodos hermanos del nodo donde se encuentra el elemento. V F Puede V o F según lo interpretes. Si la clase Class A tiene el siguiente el siguiente atributo:
map<string, class B> *atríbuto;
Entonces necesariamente la relación entre Class A y Class B es de asociación. V F. En tablas de dispersión con cubetas, si al buscar llegamos a un hueco no siempre se detiene la búsqueda. V F. Un heap no puede estar balanceado si los valores se insertan en orden contrario al que se desea recuperar. V F. En una lista simplemente enlazada el borrado del último elemento requiere tiempo lineal incluso si se mantiene un puntero al mismo. V F. Al igual que los índices simples, los árboles B son índices en parte mantenidos en memoria principal. Su ventaja respecto a los índices es la mayor eficiencia de búsqueda: O(log2 n) de los índices simples frente a O(logm n) de los árboles B, siendo m el órden del mismo y siempre mayor que dos. V F. La intersección de dos conjuntos implementados mediante vectores requiere tiempo O(n^2). V F. Un vector de listas es un contenedor válido en términos de eficiencia para implementar una cola con prioridad y un grafo, aunque no tanto para una matriz dispersa. V F. En el recorrido en postorden de un ABB el orden de visita es: nodo raíz, nodo izquierda recursivo y nodo derecha recursivo. V F. Una matriz de adyacencia es una estructura adecuada para almacenar la conectividad de un grafo. Si el grafo es dirigido entonces la matriz es simétrica. V F. Las mallas regulares pueden ser muy eficientes con tiempo cercano al O(1) independientemente de la distribución de los datos.
V F. De las dos definiciones siguientes, el dato de q se establece en la pila y el de p en el heap:
void lacosa (){
int q = 3;
int *p = new int; *p = 5;
. . .
} V F. Si no se libera la memoria de p en la función lacosa(), entonces se produce un desbordamiento o overfow.
void lacosa (){
int q = 3;
int *p = new int; *p = 5;
. . .
} V F. Si la clase A tiene una composición a muchos con la clase B y con la clase C, comportándose ambas de forma dinámica, y la clase C tiene una asociación a muchos con la clase B, entonces no es buena idea usar un vector de STL para la relación entre A y B. V F. El constructor copia de la clase ListaEnlazada<T> no necesita destructor si se usa en una asociación. V F. Una matriz dispersa y un grafo implementado mediante listas invertidas(listas de adyacencias) tienen la misma definición usando STL. V F. Aunque insertar /borrar un dato por el final en un deque<T> y en un vector<T> se considera O(1) es mejor usar un vector<T> para estos casos. V F. El orden de un árbol representa el número de hijos máximo que tiene cada nodo, menos en el árbol B que siempre debe tener ese número de hijos. V F. Ocurre que al intentar insertar los datos v y w en una tabla hash cerrada ocurre que h(v)==h(w), por lo que ambos datos podrían realizar el mismo recorrido para insertarse.
Esto se llama agrupamiento primario. V F. Si se utiliza un fichero de datos que mantiene una pila de borrados, la reutilización de una posición de dicho fichero para insertar un nuevo dato se hace con solo tres accesos. V F. Si esta sentencia es válida:
int nuevoValor = 7;
it=mieedd.find(clave);
(*it) .second[i] = &nuevoValor;
Entonces mieedd puede tener esta definición:
map <int, vector<int*> >mieedd; V F. Dada la siguiente definición:
int **p;
p puede definir una matriz bidimensional, un vector u otro uso diferente. V F. Aunque un dato almacenado en un vector dinámico no se borre nunca a lo largo de todo su ciclo de vida, podría cambiar su dirección de memoria. V F. A nivel de eficiencia, es igual implementar una cola dinámica usando una lista (std:list) que un vector (std:vector). V F. Si se introducen datos ordenados de forma descendente en un AVL, el tipo de rotación que se realizaría siempre sería el caso 4. V F. Sabemos que la siguiente sentencia es incorrecta para un contenedor asociativo de STL:
(*it).first= &p; V F. Si al buscar el punto más cercano al punto p en un quadtree, éste no se encontrara en el mismo nodo que p, entonces debe estar en otro de sus otros tres nodos hermanos. V F. Si las tablas hash T1 y T2 almacenan los mismos datos y λ1=0.8 y λ2=0.7 son sus respectivos factores de carga, entonces sabemos que el tamaño de T1 es mayor que el de T2. V F. Es posible indexar 24.000 datos en un árbol B de orden 32 y altura 2. V F. Averiguar las aristas adyacentes de entrada a un vértice en un digrafo implementado mediante listas de adyacencia es O(k), siendo k el número de vértices adyacentes. V F. Se pueden listar todos los datos de un árbol ABB en orden inverso a su definición de forma recursiva en O(n). V F.