Estructura de Datos y Algoritmos

Tarea Analítica 2

1er. Sem 2002

1.- Se tiene un arreglo con las notas obtenidas en un certamen de física tomado a n alumnos de primer año.

a) Escriba una función simple en C o C++ tome como argumento el arreglo, una nota, y n, y retorne el porcentaje de alumnos que obtuvieron nota igual o inferior a la indicada.

b) Suponga que en lugar de la ubicación porcentual de una nota se desea obtener la ubicación para todas las notas. En este caso la función tiene dos argumentos: el arreglo de notas N, un arreglo de salida P en el cual la función deja el porcentaje P[i] correspondiente a la nota N[i] i= 0..n-1. ¿Cuál sería una implementación eficiente en este caso?

2.- Escribir un programa que entregue el número de nodos de una lista enlazada circular dado un puntero a uno de los nodos de la lista. Dé su respuesta en código C o C++.

3.-Escriba el código de una función que duplique una lista simplemente enlazada. La función acepta como argumento la cabeza de la lista a duplicar y retorna la cabeza a la lista duplicado.

4.- Se tiene una tabla de hash cerrado de tamaño inicial M a la cual se ha decidido duplicar el tamaño cada vez que ésta alcanza una ocupación del 50%.

a) Determine el costo de inserción, y búsqueda exitosa cuando el factor de carga es 0.5.

b) Determine el costo de duplicar el tamaño de la tabla de hash cuando el factor de carga llega a 0.5.

c) Repita a) justo después de haber duplicado la tabla.

5.- Escriba una versión recursiva para el procedimiento de inserción en un árbol de búsqueda binaria.

6.- ¿Es la operación Tree_Delete una operación conmutativa en un árbol de búsqueda binaria? (En el sentido que si eliminados el nodo x y luego el y, obtenemos la misma ordenación de nodos que si eliminados y y luego x).

7.-Haga una función en C o C++ que retorne verdadero ( entero != 0) cuando dos árboles binarios pasados como argumentos poseen igual número de hojas.

8.- Describir un algoritmo eficiente que, dado un conjunto {x1, x2, ..., xn} de puntos sobre el eje real, determine el menor conjunto de intervalos cerrados de tamaño unitario que contiene a todos los puntos dados.