retro act 9_quiz 2 estructuradedatos
TRANSCRIPT
Act 9: Quiz 2
Revisión del intento 1
Comenzado el martes, 5 de noviembre de 2013, 17:04
Completado el martes, 5 de noviembre de 2013, 17:53
Tiempo empleado 49 minutos 50 segundos
Puntos 14.5/15
Calificación 16.4 de un máximo de 17 (97%)
Question 1
Puntos: 1
Un estructura de datos tipo cola puede ser implementada a través de arreglos o listas ligadas. A continuación
se presenta la estructura que se utiliza para implementar una cola por medio de una lista ligada en la cual
se almacenan placas de vehículos:
struct cola
{
char placa[6];
struct cola sig;
} *CAB=NULL,*P, *Q;
Identifique cuál es el problema en la definición de la estructura:
Seleccione una respuesta.
a. La placa debería dividirse en parte de letras y parte numérica
b. El puntero CAB nunca puede inicializarse en NULL
c. Error en la definición del puntero que sirve de enlace al siguiente elemento de la
lista
d. Los punteros CAB, P y Q sobran pues nunca se usan
Correcto
Puntos para este envío: 1/1.
Question 2
Puntos: 1
La pregunta que encontrará a continuación consta de una afirmación y una razón unidas por
la palabra PORQUE. Usted debe juzgar tanto el grado de verdad o falsedad de cada una de
ellas como la relación existente entre las mismas.
__________________
En la implementación de las estructuras dinámicas lineales tipo cola se usa Un puntero del mismo tipo de la
estructura que es utilizado como enlace al siguiente elemento de la cola, al igual que una lista enlazada
PORQUE Un puntero es una variable que en su contenido guarda la dirección de otra variable a la que
apunta, además, las variables de tipo puntero son utilizadas para la implementación de estructuras
dinámicas porque pueden ser creadas y liberadas en tiempo de ejecución.
Seleccione una respuesta.
a. La afirmación y la razón y la razón son VERDADERAS, pero la razón NO es una
explicación CORRECTA de la afirmación.
b. La afirmación y la razón son VERDADERAS y la razón es una explicación
CORRECTA de la afirmación.
c. La afirmación es FALSA, pero la razón es una proposición VERDADERA.
d. La afirmación es VERDADERA, pero la razón es una proposición FALSA.
La afirmación y la razón y la razón son VERDADERAS, pero la razón NO es una
explicación CORRECTA de la afirmación.
Correcto
Puntos para este envío: 1/1.
Question 3
Puntos: 1
La siguiente función hace parte de la implementación de una cola :
void insertar(void)
{
AUX=(struct cola *)malloc(sizeof(struct cola));
clrscr();
cout<<"dato: ";
gets(AUX->dato);
AUX->sig=NULL;
if (FINAL==NULL)
FINAL=CABEZA=AUX;
else
{
FINAL->sig=AUX;
FINAL=AUX;
}
}
Esta función permite:
Seleccione una respuesta.
a. Extraer un elemento de una cola
b. Añadir elemento en una cola vacía o no vacía
c. Visualizar los elementos de una cola
d. Modificar los elementos de una cola
Correcto
Puntos para este envío: 1/1.
Question 4
Puntos: 1
Analice el siguiente código, haga una prueba de escritorio y determine entre las opciones de
respuesta, el valor que toman las tres variables (*x,**y,a)al finalizar el programa en su
salida en pantalla.
void main(){
int a=10,*x,**y;
x = &a;
*x = 20;
y = &x ;
**y += *x;
cout << "El valor de a es:"<<a;
cout << "\nEl valor de *x es:"<<*x;
cout <<"\nEl valor de **y es:"<<**y;
}</a;
Seleccione una respuesta.
a. La variable a muestra el valor 10, la
variable *x y la variable **y muestran solo
muestran direcciones de memoria
b. Las tres variables muestran el valor de 40
Muy bien su respuesta es correcta, las
tres variables tienen el mismo valor de
40 en la salida en pantalla.
c. La variable a muestra el valor 10, la
variable *x y la variable **y muestran el
valor de 20
d. Las tres variables muestran el valor de 30
Correcto
Puntos para este envío: 1/1.
Question 5
Puntos: 1
El siguiente fragmento de código fuente, corresponde a una parte de la implementación de
una pila, Sabiendo que las variables inicio y c son apuntadores e inicio es un miembro de la
estructura; determine cuál de las siguientes opciones es la operación que realiza la siguiente
función.
void Función (void)
{
inicio=(struct pila *)malloc(sizeof(struct pila));
clrscr(); cout<<"Digite el dato de tipo ENTERO: ");
cin>>inicio->numero;
if (c==NULL) { c=inicio;
inicio->sig=NULL;
}
else
{
inicio->sig=c;
c=inicio;
}
}
Seleccione una respuesta.
a. Visualizar datos de la pila
b. Insertar datos a la pila
c. Recorrer la pila
d. Eliminar datos de la pila
Correcto
Puntos para este envío: 1/1.
Question 6
Puntos: 1
Seleccione de las siguientes opciones la que NO corresponde a las operaciones que
normalmente se pueden realizar con las pilas.
Seleccione una respuesta.
a. Eliminar el último elemento insertado a la pila
b. Insertar un elemento al final de la pila
c. Buscar un elemento de la pila
d. Eliminar un elemento de la mitad de la pila
Correcto
Puntos para este envío: 1/1.
Question 7
Puntos: 1
Las estructuras de datos lineales tipo Pila se pueden representar en memoria por medio de:
Seleccione una respuesta.
a. Arrays
b. Listas Enlazadas
c. Arrays y lista doblemente enlazadas
d. Arrays y Listas enlazadas
Correcto
Puntos para este envío: 1/1.
Question 8
Puntos: 1
Las Colas hacen parte de las estructuras de datos lineales, también recibe el nombre de
Listas FIFO, de igual manera son identificadas como una lista lineal condicionada al igual
que las pilas, la diferencia entre ellas radica en el modo de insertar y eliminar sus elementos
ya que en una cola las inserciones y eliminaciones se realizan de la siguiente manera.
Seleccione al menos una respuesta.
a. Las eliminaciones de la cola se realizan al principio de la lista (por el frente) es
decir el primero en ingresar es el primero en salir
b. Las eliminaciones de una cola no vacía se realizan por el tope (al final) es decir
ultimo en entrar primero en salir
c. Las inserciones se realizan por el tope (al final de la cola) es decir por el mismo
extremo de las eliminaciones
d. Las inserciones de una cola no vacía se realizan al final de la lista
Su respuesta es parcialmente correcta, en una cola las inserciones y eliminaciones se
realizan por extremos diferentes
Parcialmente correcto
Puntos para este envío: 0.5/1.
Question 9
Puntos: 1
El siguiente fragmento de código hace referencia a una función utilizada en la
implementación de una estructura de datos tipo pila.
void funcion(void) {
primero=(struct pila *)malloc(sizeof(struct pila));
cout<<"Digite Nombre de Computadora o Equipo:";
cin>>primero->equipo;
if(x==NULL)
{
x=primero;
primero->sig=NULL;
}
else
{
primero->sig=x;
x=primero;
}
}
Realice un análisis del código propuesto e identifique entre las siguientes opciones de
operaciones que se pueden realizar con las pilas a cual de ellas corresponde. Puede hacer
uso de una prueba de escritorio.
Seleccione una respuesta.
a. La función permite visualizar los elementos de la pila
b. La función permite eliminar los elementos de la pila
c. La función permite insertar elementos a la pila
d. La función permite localizar elementos de la pila
Muy bien su respuesta es correcta La función permite insertar elementos a la pila
Correcto
Puntos para este envío: 1/1.
Question 10
Puntos: 1
En la siguiente instrucción de código se declara una estructura para la implementación de
una pila que almacenará números de tipo entero.
struct pila{
int numero;
struct pila *sig;
}*inicio,*c;
A continuación se presenta el código de la definición de la función insertar, la cual permite
insertar datos a la pila.
void insertar (void){
inicio=new struct pila;
cout<<"Digite el dato de tipo ENTERO: ";
cin>>inicio->numero;
if (c==NULL)
{
c=inicio;
inicio->sig=NULL;
}
else
{
inicio->sig=c;
c=inicio;
}
}
Si se quiere reemplazar el operador new por la función malloc()para la gestión dinámica de
memoria ¿Cuál sería la instrucción correcta?.
Seleccione una respuesta.
a. inicio=(int pila
*)malloc(sizeof(int));
b. inicio=(struct pila
*)malloc(sizeof(struct pila));
Muy bien su respuesta es correcta, porque la función
malloc() recibe como argumento a struct pila como el
tipo del objeto que se va asignar y devuelve un
apuntador a un objeto del mismo tipo, es decir de struct
pila.
c. inicio=(struct pila
*)malloc(sizeof(int pila));
d. inicio=malloc() struct
pila;
Correcto
Puntos para este envío: 1/1.
Question 11
Puntos: 1
Las estructuras de datos dinámicas permiten asignar memoria en tiempo de ejecución de
acuerdo a lo anterior ¿Cuál es el límite de memoria dinámica que se puede asignar a un
objeto de un programa que se encuentre en ejecución?.
Seleccione una respuesta.
a. Depende del compilador que amaesté
utilizando en la compilación del progr
b. Depende del tipo de dato del objeto que
haga la reserva de memoria
c. Depende del operador de C++ o de la
función de C. que esté implementando en
el programa para la gestión de memoria
d. El limite para la asignación dinámica
puede ser tan grande como la cantidad de
memoria física de su computadora
Muy bien su respuesta es correcta, en una
estructura de datos la memoria se asigna
dinámicamente tanto como sea necesario.
Correcto
Puntos para este envío: 1/1.
Question 12
Puntos: 1
Las estructuras de datos lineales tipo pila permiten la interacción y el manejo de datos de
diferentes tipos, esto hace que con la información almacenada en las estructuras se pueda
consultar, insertar, visualizar, y eliminar datos.
De acuerdo a lo anterior podemos identificar las operaciones que se permiten realizar con
las estructuras de datos tipo pila.
Seleccione una respuesta.
a. Eliminar el último elemento ingresado a una pila de 5 elementos
b. Eliminar el segundo elemento ingresado de una pila que tiene 5 elementos
c. Eliminar el primer elemento ingresado a una pila de 5 elementos
d. Eliminar cualquier elemento de los 5 que se encuentre en la pila
Correcto
Puntos para este envío: 1/1.
Question 13
Puntos: 1
Una Pila es considerada como una estructura de datos lineal de tipo:
Seleccione una respuesta.
a. FIFO
b. LIFO/FIFO
c. LIFO Correcto
d. FIFO/FIFO
Correcto
Puntos para este envío: 1/1.
Question 14
Puntos: 1
Las listas circulares presentan algunas ventajas respecto de las listas
enlazadas simples una de ellas es que cada nodo de una lista circular es accesible desde
cualquier otro nodo de ella. Es decir, dado un nodo se puede recorrer toda la lista completa.
Sin embargo se pueden presentar algunos inconvenientes en su implementación.
De las siguientes opciones seleccione la que hace referencia a la dificultad que puede
presentar su uso.
Seleccione una respuesta.
a. Se puede presentar dificultad en las operaciones de Inserrción y busqueda de un
nodo
b. Una lista enlazada de forma simple sólo es posible recorrerla por completo si se
parte de su primer nodo
c. Las operaciones de concatenación y división de listas no se pueden realizar con
listas circulares
d. Se pueden producir lazos o bucles infinitos
Correcto
Puntos para este envío: 1/1.
Question 15
Puntos: 1
Las estructuras de datos se clasifican en estructuras lineales y estructuras no lineales, de
acuerdo a lo anterior indique ¿Cual de las siguientes opciones no es considerada una
estructura de datos lineal?
Seleccione una respuesta.
a. Lista
b. Grafo Muy bien su respuesta es correcta, los grafos son estructura
de datos no lineales.
c. Lista doblemente
enlazada
d. Pila
Correcto