Download TEST REFERENCIAS Y TIPOS ABSTRACTOS DE DATOS (06/10
Document related concepts
no text concepts found
Transcript
TEST REFERENCIAS Y TIPOS ABSTRACTOS DE DATOS (06/10/2010) EDI - CURSO 2010/2011 (Grupo Sistemas) Alumno/a: ____________________________________________ D.N.I.: _______________ TEST. 5 puntos. Nota: cada pregunta correcta suma 1,25 puntos (las respuestas incorrectas no penalizan). En algunos casos, la respuesta correcta puede consistir en no marcar opción alguna. 1.- Marque la respuesta/s correcta/s. [ ] Una referencia en Java guarda la dirección de memoria en la que se almacena un objeto. [ ] Los objetos en Java se pasan por valor. [ ] Sólo es posible tener una referencia por objeto. [ ] Generalmente, en Java es posible aplicar operadores aritméticos (+, -, *, ...) sobre referencias. 2.- Marque la respuesta incorrecta respecto al concepto de especificación algebraica de tipos abstractos de datos. [ ] Es una técnica formal. [ ] Permite definir sin ambigüedad un TAD. [ ] A la hora de definir un TAD de tipo T, sus operaciones nunca involucran tipos de datos auxiliares (ej.: tipo Entero). [ ] Es independiente de cualquier representación/implementación. 3.- Marque la respuesta/s correcta/s respecto a los tipos abstractos de datos. [ ] El conjunto de operaciones constructoras se puede clasificar como libre o no libre. [ ] Si la operación de un TAD llamado T devuelve un resultado de tipo T, entonces dicha operación es generadora. [ ] Si la operación de un TAD llamado T devuelve un resultado de tipo T, entonces dicha operación es modificadora. [ ] El usuario de un TAD ha de conocer sólo los aspectos más relevantes de su implementación. 4.- Señale la principal desventaja de una interfaz respecto a una clase abstracta. [ ] Las interfaces están ligadas a una jerarquía rígida de tipos de datos. [ ] Las interfaces no están ligadas a una jerarquía rígida de tipos de datos. [ ] Es necesario hacer una inversión importante de esfuerzo si la interfaz cambia después de su especificación inicial. [ ] No permiten el uso de herencia múltiple. - Página 1 - CUESTIONES. 5 puntos. A (1,5 puntos) Dado el TAD bolsa, definido como una colección no ordenada de elementos y con posible repetición, y suponiendo las operaciones CrearBolsa, EsVacía, Poner y Quitar, escriba la especificación semántica de las operaciones EsVacía y Quitar en función de las operaciones generadoras. * Nota: suponga ∀ b ∈bolsa ,∀ e , f ∈elemento B (3,5 puntos) Suponiendo la siguiente implementación de la clase VariableEnlazada, class VariableEnlazada<X> { private X _valor; private VariableEnlazada<X> _enlace; public VariableEnlazada (X valor, VariableEnlazada<X> enlace) { _valor = valor; _enlace = enlace; } public public public public public void setValor (X valor) { _valor = valor; } X getValor () { return _valor; } void setEnlace (VariableEnlazada<X> enlace) { _enlace = enlace; } VariableEnlazada<X> getEnlace () { return _enlace; } String toString () { return _valor.toString(); } } implemente en Java un método recorrer (VariableEnlazada<X> inicio) que imprima por pantalla el contenido de toda la cadena de enlaces (uno por línea). 1,75 puntos. * Nota: suponga que inicio representa la referencia al primer objeto de la cadena. Implemente en Java un método recorrer_y_alterar (VariableEnlazada<X> inicio) que modifique una cadena de enlaces 'ignorando' los enlaces que ocupan una posición par en la cadena inicial. A continuación se muestra un ejemplo. 1,75 puntos. * Nota: se pide modificar los enlaces, no crear una nueva cadena de objetos de clase VariableEnlazada. 'a' 'b' 's' 'ñ' 'b' Pos: 1 Pos: 2 Pos: 3 Pos: 4 Pos: 5 Resultado: 'a' 's' - Página 2 - 'b'