ebook img

Algoritmos y Estructuras de Datos. Examen Final. Tema 1a. PDF

419 Pages·2015·11.05 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Algoritmos y Estructuras de Datos. Examen Final. Tema 1a.

TEMA: 1a Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Algoritmos y Estructuras de Datos. Examen Final. Tema 1a. [11 de Julio de 2002] Ej. 1.- Escribir las funciones primitivas del TAD CONJUNTO implementado mediante vectores de bits. Es decir, implementar en Pascal los siguientes procedimientos/funciones listadas abajo. Incluir todas las definiciones de tipo necesarias. (a) ANULA, (b) UNION, (c) INTERSECCION, (d) MIEMBRO, (e) MIN, (f) INSERTA y (g) SUPRIME. Ej. 2.- Escribir un funcio´n function CUENTA PROF(n:nodo; m:integer; A:arbol) : integer; que dado un nodo n en un ´arbol A cuenta el nu´mero de nodos del suba´rbol de A cuya ra´ız es n que est´an a profundidad m o menor (con respecto a n). Por ejemplo, para el ´arbol de la figura debe retornar CUENTA_PROF(G,2,A) -> 8 CUENTA_PROF(J,1,A) -> 3 CUENTA_PROF(N,3,A) -> 4 prof=0 G prof=1 J C prof=2 M N F Z H prof=3 B K I P prof=4 D E Usar las primitivas de ´arbol ordenado orientado siguientes: HIJO MAS IZQ(n,A),HERMANO DER(n,A). Sugerencia: Hacer la funcio´n recursiva. Notar que, por ejemplo: CUENTA_PROF(G,2,A) = 1 + CUENTA_PROF(J,1,A) + CUENTA_PROF(C,1,A) La recursividad de la funcio´n debe cortar cuando n= Λ o m < 0. Ej. 3.- Uso ba´sico de TAD’s: (a) Escribir un procedimiento procedure ROTA(var L:lista; n:integer); que manda los primeros n elementos de la lista al final de la misma. Por ejemplo, si L = {1,3,5,4,2,6}, entonces ROTA(L,2) la deja en L = {5,4,2,6,1,3}. (b) Escribir una funcio´n CUENTA(var P:pila) : integer; que cuenta los elementos de una pila. Ayuda: utilizar una pila auxiliar. 1 ExamenFinal.Tema1a.[11deJuliode2002] TEMA: 1a Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Ej. 4.- [LIBRES] Ejercicios operativos: (a) A´rboles: Dibujar el ´arbol ordenado orientado cuyos nodos, listados en orden previo y posterior son • ORD PRE ={Q,R,A,B,L,M,N}, • ORD POST ={A,B,R,M,N,L,Q}. (b) Clasificaci´on por mont´ıculos: Dados los enteros {30,10,12,15,7,2} ordenarlos por el m´etodo de “mont´ıculos” (“heap-sort”). Mostrar el mont´ıculo (minimal) antes y despu´es de cada inserci´on/supresio´n. Ej. 5.- [LIBRES] Preguntas: [Responder segu´n el sistema “multiple choice”, es decir marcar con una cruz el casillero apropiado. Atenci´on: Algunas respuestas son intencionalmente “descabelladas” y tienen puntajes negativos!!] (a) La ventaja de la representacio´n del TAD COLA por arreglo circular con respecto a la representaci´on por celdas enlazadas es que ... ... requiere menos memoria ya que no necesita los punteros para enlazar celdas. ... es ma´s simple. ... permite inserciones/supresiones en el medio de la cola. ... el orden de las operaciones FRENTE, QUITA, PONE es O(logn). (b) Una ventaja del m´etodo de clasificaci´on por selecci´on, en comparaci´on con otros algoritmos lentos, es que realiza so´lo n intercambios... ... cuando el vector esta´ ordenado. ... cuando el vector esta´ desordenado. ... siempre. ... a veces. (c) Una de las desventajas de implementar el TAD LISTA con arreglos es que ... ... las inserciones en el medio de la lista son O(n). ... las inserciones en el medio de la lista son O(1). ... ocupa m´as memoria. ... no se pueden insertar/suprimir elementos. (d) La bu´squeda exhaustiva del camino de longitud m´ınima para el “Problema del Agente Viajante” (PAV) tiene un tiempo de ejecucio´n (n es el nu´mero de ciudades) ... O(n!) O(1) O(n) 2 O(n ) 2 ExamenFinal.Tema1a.[11deJuliode2002] TEMA: 1b Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Algoritmos y Estructuras de Datos. Examen Final. Tema 1b. [11 de Julio de 2002] Ej. 1.- Escribir las funciones primitivas del TAD CONJUNTO implementado mediante vectores de bits. Es decir, implementar en Pascal los siguientes procedimientos/funciones listadas abajo. Incluir todas las definiciones de tipo necesarias. (a) ANULA, (b) UNION, (c) INTERSECCION, (d) MIEMBRO, (e) MIN, (f) INSERTA y (g) SUPRIME. Ej. 2.- Escribir un funcio´n function CUENTA PROF(n:nodo; m:integer; A:arbol) : integer; que dado un nodo n en un ´arbol A cuenta el nu´mero de nodos del suba´rbol de A cuya ra´ız es n que est´an a profundidad m o menor (con respecto a n). Por ejemplo, para el ´arbol de la figura debe retornar CUENTA_PROF(G,2,A) -> 8 CUENTA_PROF(J,1,A) -> 3 CUENTA_PROF(N,3,A) -> 4 prof=0 G prof=1 J C prof=2 M N F Z H prof=3 B K I P prof=4 D E Usar las primitivas de ´arbol ordenado orientado siguientes: HIJO MAS IZQ(n,A),HERMANO DER(n,A). Sugerencia: Hacer la funcio´n recursiva. Notar que, por ejemplo: CUENTA_PROF(G,2,A) = 1 + CUENTA_PROF(J,1,A) + CUENTA_PROF(C,1,A) La recursividad de la funcio´n debe cortar cuando n= Λ o m < 0. Ej. 3.- Uso ba´sico de TAD’s: (a) Escribir un procedimiento procedure ROTA(var L:lista; n:integer); que manda los primeros n elementos de la lista al final de la misma. Por ejemplo, si L = {1,3,5,4,2,6}, entonces ROTA(L,2) la deja en L = {5,4,2,6,1,3}. (b) Escribir una funcio´n CUENTA(var P:pila) : integer; que cuenta los elementos de una pila. Ayuda: utilizar una pila auxiliar. 1 ExamenFinal.Tema1b.[11deJuliode2002] TEMA: 1b Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Ej. 4.- [LIBRES] Ejercicios operativos: (a) A´rboles: Dibujar el ´arbol ordenado orientado cuyos nodos, listados en orden previo y posterior son • ORD PRE ={Z,T,Q,L,M,N,P}, • ORD POST ={Q,M,N,P,L,T,Z}. (b) Clasificaci´on por mont´ıculos: Dados los enteros {31,11,13,16,8,8} ordenarlos por el m´etodo de “mont´ıculos” (“heap-sort”). Mostrar el mont´ıculo (minimal) antes y despu´es de cada inserci´on/supresio´n. Ej. 5.- [LIBRES] Preguntas: [Responder segu´n el sistema “multiple choice”, es decir marcar con una cruz el casillero apropiado. Atenci´on: Algunas respuestas son intencionalmente “descabelladas” y tienen puntajes negativos!!] (a) La ventaja de la representacio´n del TAD COLA por arreglo circular con respecto a la representaci´on por celdas enlazadas es que ... ... el orden de las operaciones FRENTE, QUITA, PONE es O(logn). ... es ma´s simple. ... requiere menos memoria ya que no necesita los punteros para enlazar celdas. ... permite inserciones/supresiones en el medio de la cola. (b) Una ventaja del m´etodo de clasificaci´on por selecci´on, en comparaci´on con otros algoritmos lentos, es que realiza so´lo n intercambios... ... a veces. ... cuando el vector esta´ ordenado. ... cuando el vector esta´ desordenado. ... siempre. (c) Una de las desventajas de implementar el TAD LISTA con arreglos es que ... ... no se pueden insertar/suprimir elementos. ... las inserciones en el medio de la lista son O(1). ... las inserciones en el medio de la lista son O(n). ... ocupa m´as memoria. (d) La bu´squeda exhaustiva del camino de longitud m´ınima para el “Problema del Agente Viajante” (PAV) tiene un tiempo de ejecucio´n (n es el nu´mero de ciudades) ... O(1) O(n) 2 O(n ) O(n!) 2 ExamenFinal.Tema1b.[11deJuliode2002] TEMA: 1c Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Algoritmos y Estructuras de Datos. Examen Final. Tema 1c. [11 de Julio de 2002] Ej. 1.- Escribir las funciones primitivas del TAD CONJUNTO implementado mediante vectores de bits. Es decir, implementar en Pascal los siguientes procedimientos/funciones listadas abajo. Incluir todas las definiciones de tipo necesarias. (a) ANULA, (b) UNION, (c) INTERSECCION, (d) MIEMBRO, (e) MIN, (f) INSERTA y (g) SUPRIME. Ej. 2.- Escribir un funcio´n function CUENTA PROF(n:nodo; m:integer; A:arbol) : integer; que dado un nodo n en un ´arbol A cuenta el nu´mero de nodos del suba´rbol de A cuya ra´ız es n que est´an a profundidad m o menor (con respecto a n). Por ejemplo, para el ´arbol de la figura debe retornar CUENTA_PROF(G,2,A) -> 8 CUENTA_PROF(J,1,A) -> 3 CUENTA_PROF(N,3,A) -> 4 prof=0 G prof=1 J C prof=2 M N F Z H prof=3 B K I P prof=4 D E Usar las primitivas de ´arbol ordenado orientado siguientes: HIJO MAS IZQ(n,A),HERMANO DER(n,A). Sugerencia: Hacer la funcio´n recursiva. Notar que, por ejemplo: CUENTA_PROF(G,2,A) = 1 + CUENTA_PROF(J,1,A) + CUENTA_PROF(C,1,A) La recursividad de la funcio´n debe cortar cuando n= Λ o m < 0. Ej. 3.- Uso ba´sico de TAD’s: (a) Escribir un procedimiento procedure ROTA(var L:lista; n:integer); que manda los primeros n elementos de la lista al final de la misma. Por ejemplo, si L = {1,3,5,4,2,6}, entonces ROTA(L,2) la deja en L = {5,4,2,6,1,3}. (b) Escribir una funcio´n CUENTA(var P:pila) : integer; que cuenta los elementos de una pila. Ayuda: utilizar una pila auxiliar. 1 ExamenFinal.Tema1c.[11deJuliode2002] TEMA: 1c Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Ej. 4.- [LIBRES] Ejercicios operativos: (a) A´rboles: Dibujar el ´arbol ordenado orientado cuyos nodos, listados en orden previo y posterior son • ORD PRE ={A,Z,Q,L,R,P,D,N}, • ORD POST ={Z,L,Q,P,R,N,D,A}. (b) Clasificaci´on por mont´ıculos: Dados los enteros {32,12,14,17,9,4} ordenarlos por el m´etodo de “mont´ıculos” (“heap-sort”). Mostrar el mont´ıculo (minimal) antes y despu´es de cada inserci´on/supresio´n. Ej. 5.- [LIBRES] Preguntas: [Responder segu´n el sistema “multiple choice”, es decir marcar con una cruz el casillero apropiado. Atenci´on: Algunas respuestas son intencionalmente “descabelladas” y tienen puntajes negativos!!] (a) La ventaja de la representacio´n del TAD COLA por arreglo circular con respecto a la representaci´on por celdas enlazadas es que ... ... es ma´s simple. ... permite inserciones/supresiones en el medio de la cola. ... el orden de las operaciones FRENTE, QUITA, PONE es O(logn). ... requiere menos memoria ya que no necesita los punteros para enlazar celdas. (b) Una ventaja del m´etodo de clasificaci´on por selecci´on, en comparaci´on con otros algoritmos lentos, es que realiza so´lo n intercambios... ... a veces. ... cuando el vector esta´ ordenado. ... cuando el vector esta´ desordenado. ... siempre. (c) Una de las desventajas de implementar el TAD LISTA con arreglos es que ... ... las inserciones en el medio de la lista son O(1). ... no se pueden insertar/suprimir elementos. ... las inserciones en el medio de la lista son O(n). ... ocupa m´as memoria. (d) La bu´squeda exhaustiva del camino de longitud m´ınima para el “Problema del Agente Viajante” (PAV) tiene un tiempo de ejecucio´n (n es el nu´mero de ciudades) ... O(1) O(n!) 2 O(n ) O(n) 2 ExamenFinal.Tema1c.[11deJuliode2002] Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Algoritmos y Estructuras de Datos. Examen Final. [1 de Agosto de 2002] Ej. 1.- Escribir las funciones primitivas del TAD CONJUNTO implementado listas enlazadas clasificadas. Es decir, implementar en Pascal los siguientes procedimientos/funciones listados abajo. Incluir todas las definiciones de tipo necesarias. (a) ANULA(A), (b) UNION(A,B,C), (c) INTERSECCION(A,B,C), (d) DIFERENCIA(A,B,C), (e) MIEMBRO(x,A), (f) MIN(A), (g) INSERTA(x,A) y (h) SUPRIME(x,A). Ej. 2.- Escribir un procedimiento procedure JUNTA(var L: lista; n:integer); que dada una lista L, agrupa de a m elementos dejando su suma (ver figura). Usar las siguientes primitivas del TAD LISTA: INSERTA(x,p,L), RECUPERA(p,L), SUPRIME(p,L), SIGUIENTE(p,L), ANULA(L), PRIMERO(L), y FIN(L). No usar ninguna estructura auxiliar. Prestar atenci´on a no usar posiciones inva´lidas despu´es de una supresio´n. El algoritmo debe tener un tiempo de ejecucio´n O(n), donde n es el nu´mero de elementos en la lista original. L={1,3,2,4,5,2,2,3,5,7,4,3,2,2} JUNTA(L,3) + + + + + L={6,11,9,14,4} Ej. 3.- Uso ba´sico de TAD’s: (a) Escribir una funcio´n function MAXIMO PAR(n:nodo; A:arbol):integer; que retorna el ma´ximo de las etiquetas pares de un ´arbol binario. En el caso del ´arbol de la figura debe retornar 12. Usar las primitivas del TAD ARBOL BINARIO: HIJO IZQUIERDO(n,A), HIJO DERECHO(n,A) y ETIQUETA(n,A), 10 21 6 11 23 12 6 3 1 ExamenFinal.[1deAgostode2002] Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] (b) Escribir un procedimiento procedure ELIMINA VALOR(var C:cola; n: integer); que elimina todos las ocurrencias del valor n en la cola C. Por ejemplo, si C = {1,3,5,4,2,3,7,3,5}, despu´es de ELIMINA VALOR(C,3) debe quedar C = {1,5,4,2,7,5}. Sugerencia: Usar una estructura auxiliar lista o cola. Utilizar las primitivas del TAD COLA: ANULA(C), PONE EN COLA(x,C), QUITA DE COLA(C), VACIA(C), y FRENTE DE COLA(C). El algoritmo debe tener un tiempo de ejecuci´on O(n), donde n es el nu´mero de elementos en la cola original. Ej. 4.- [LIBRES] Ejercicios operativos: (a) A´rboles: Dibujar el ´arbol ordenado orientado cuyos nodos, listados en orden previo y posterior son • ORD PRE ={C,D,E,R,S,Q,A,B}, • ORD POST ={D,Q,R,A,B,S,E,C}. (b) A´rboles de Huffman: Dados los caracteres siguientes con sus correspondientes probabilidades, contruir el c´odigo binario y encodar la palabra CORRALITO P(C) = 0.2,P(O) = 0.2,P(R) = 0.2,P(A) = 0.1,P(L) = 0.1,P(I) = 0.1,P(T) = 0.1 Calcular la longitud promedio del c´odigo obtenido. Ej. 5.- [LIBRES] Preguntas: [Responder segu´n el sistema “multiple choice”, es decir marcar con una cruz el casillero apropiado. Atenci´on: Algunas respuestas son intencionalmente “descabelladas” y tienen puntajes negativos!!] (a) El tiempo de ejecuci´on para el algoritmo de clasificaci´on ra´pida (“quicksort”) en el peor caso es • O(logn) • O(n) 2 • O(n ) • O(nlogn) (b) El tiempo de ejecuci´on para el algoritmo de clasificaci´on por mont´ıculos es 2 • O(nlogn) en el mejor caso, O(n ) en promedio • siempre O(nlogn) 2 • siempre O(n ) 2 • a veces O(n ) (c) Sea un tabla de dispersi´on abierta con B cubetas y n elementos. Asumiendo que la funcio´n de dispersi´on es lo suficientemente buena como para distribuir los elementos en forma uniforme entre las cubetas, el costo medio de inserci´on de un nuevo elemento es 2 • O(n /B) 2 • O((n/B) ) • O(n+B) • O(n/B) 2 ExamenFinal.[1deAgostode2002] Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Algoritmos y Estructuras de Datos. Examen Final. [3 de Octubre de 2002] Ej. 1.- Escribir las funciones primitivas del TAD ARBOL BINARIO listadas a continuacio´n, con celdas enlazadas por punteros o cursores: PADRE(n,A), HIJO IZQ(n,A), HIJO DER(n,A), ETIQUETA(n,A), CREA2(v, A1, A2) y ANULA(A). Ej. 2.- Escribir un procedimiento procedure KRONECKER(LA,LB: lista; var L:lista); que, dadas dos listas LA={a1,a2,...,aN} y LB={b1,b2,...,bM} retorna otra lista L con N ×M valores de la siguiente forma: L = {a1b1,a1b2,...,a1bM, a2b1,a2b2,...,a2bM, (1) ... aNb1,aNb2,...,aNbM} Por ejemplo, si LA={1,3,5,0} y LB={1,2,3,4} entonces KRONECKER(LA,LB,L) debe hacer que L = {1,2,3,4,3,6,9,12,5,10,15,20,0,0,0,0}. (2) Usar las siguientes primitivas del TAD LISTA: INSERTA(x,p,L), RECUPERA(p,L), SUPRIME(p,L), SIGUIENTE(p,L), ANULA(L), PRIMERO(L), y FIN(L). No usar ninguna estructura auxiliar. Ej. 3.- Escribir una funcio´n function MAXCOTA(n:nodo;A:arbol;cota:integer):integer; que retorna el m´aximo de las etiquetas de un ´arbol binario tales que son menores o iguales que la cota c. Por ejemplo, si las etiquetas de un ´arbol A son {1,3,7,4,2,10,13} y cota=8, entonces MAXCOTA(raiz(A),A,8) debe retornar 7. Usar las primitivas del TAD ARBOL BINARIO: HIJO IZQ(n,A), HIJO DER(n,A), ETIQUETA(n,A) y raiz(A). Ej. 4.- Escribir una funcio´n function MAXHOJA(n:nodo;A:arbol):integer; que retorna el ma´ximo de las etiquetas de las hojas un ´arbol ordenado orientado. Por ejemplo, en el siguiente ´arbol debe retornar 8. 10 3 6 8 11 4 2 6 1 ExamenFinal.[3deOctubrede2002] Universidad Nacional del Litoral ApellidoyNombre: Facultad de Ingenier´ıa y Ciencias H´ıdricas Departamento de Inform´atica Carrera: DNI: Algoritmos y Estructuras de Datos [Llenarconletramayu´sculadeimprentaGRANDE] Usar las primitivas del TAD ARBOL ORDENADO ORIENTADO: HIJO MAS IZQ(n,A), HERMANO DER(n,A), ETIQUETA(n,A). Ej. 5.- [LIBRES] Ejercicios operativos: (a) A´rboles: Dibujar el ´arbol ordenado orientado cuyos nodos, listados en orden previo y posterior son • ORD PRE ={C,Q,T,R,S,U,A,L}, • ORD POST ={T,Q,S,U,L,A,R,C}. (b) Clasificaci´on por mont´ıculos: Dados los enteros {15,7,3,8,4,10,2} ordenarlos por el m´etodo de “mont´ıculos” (“heap-sort”). Mostrar el mont´ıculo (minimal) antes y despu´es de cada inserci´on/supresio´n. Ej. 6.- [LIBRES] Preguntas: [Responder segu´n el sistema “multiple choice”, es decir marcar con una cruz el casillero apropiado. Atenci´on: Algunas respuestas son intencionalmente “descabelladas” y tienen puntajes negativos!!] (a) Dadas las funciones T1(n) = 2n3+logn, T2(n) = 4+logn, T3(n) = 2n+n! y T4(n) = 4n+n2 decir cua´l de los siguientes ordenamientos es el correcto T1 < T2 < T3 < T4 T4 < T3 < T2 < T1 T2 < T1 < T4 < T3 T3 < T4 < T1 < T2 (b) ¿Cua´l de los siguientes algoritmos de clasificaci´on es el m´as ra´pido en el caso promedio? Burbuja (“Bubble-sort”) Clasificacio´n ra´pida (“Quick-sort”) Clasificacio´n ´optima (“Holy grail sort”) Selecci´on (c) Una ventaja del m´etodo de clasificaci´on por selecci´on, en comparaci´on con otros algoritmos lentos, es que realiza so´lo n intercambios... ... a veces. ... cuando el vector esta´ ordenado. ... siempre. ... cuando el vector esta´ desordenado. 2 ExamenFinal.[3deOctubrede2002]

Description:
Algoritmos y Estructuras de Datos. Examen Final. elementos, entonces los últimos N mod m elementos también deben ser ordenados entre sı.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.