2. DESARROLLO
1-Realizar un análisis comparativo en un documento de Word con las diferencias
entre interface e implementación de TAD.
INTERFACE DE UNA CLASE:
Se corresponde con la parte de especificación de un TDA escrita en particular
para el lenguaje de programación C++. Esta parte especifica el nombre de la clase
(nombre del TDA) y consta de una sección pública y de una sección privada
diferenciadas mediante las cláusulas: public y private, respectivamente. En la
primera se declara la sintaxis de todo aquello a lo que podrá acceder el usuario,
en general, los métodos de la clase. Mientras que en la segunda se declaran los
campos de un objeto (cuyos valores determinan el estado del mismo) y las
operaciones internas que se vayan a utilizar en la parte de codificación de las
operaciones de la clase. Así, aun cuando no queda oculta al usuario la
representación de un objeto (sus campos) no es posible acceder directamente a
éstos a menos que se declaren en la sección pública (lo que, en general, iría en
contra del paradigma de programación basado en TDAs).
IMPLEMENTACION DE UNA CLASE:
La parte de implementación de una clase se corresponde con la parte de
implementación de un TDA, exceptuando el hecho de que en una clase la parte
de representación (área de datos) se realiza en el interface (normalmente en la
sección privada). Esta parte consta de la realización del código de las
operaciones de la clase (función miembro o métodos).
3. ANALISIS DE LA DIFERENCIA ENTRE INTERFACE E IMPLEMENTACION
DE TAD:
Cuando se usa en un programa de computación, un TDA es representado por su
interfaz, la cual sirve como cubierta a la correspondiente implementación. Los
usuarios de un TDA tienen que preocuparse por la interfaz, pero no con la
implementación, ya que esta puede cambiar en el tiempo y afectar a los
programas que usan el TDA. La solidez de un TDA reposa en la idea de que la
implementación está escondida al usuario. Solo la interfaz es pública. Esto
significa que el TDA puede ser implementado de diferentes formas, pero
mientras se mantenga consistente con la interfaz, los programas que lo usan no
se ven afectados. Hay una diferencia entre el Tipo de Dato Abstracto y
estructura del dato usada en su implementación. Una lista es un Tipo de Dato
Abstracto con operaciones bien definidas (agregar elemento, agregar al final,
agregar al principio, recuperar, eliminar, etc.) mientras tanto la lista enlazadas,
es una estructura de datos basada en punteros o referencias (dependiendo del
lenguaje) que puede ser usada para crear una representación de una Lista. En
cuanto la lista enlazada es comúnmente usada para representar una TDA Lista,
y a veces, hasta confundida. En términos de definición de orientación de objetos,
es TDA es una clase; un instancia de un TDA o clase, es un objeto.
4. 2-EXPLICAR LAS TÉCNICAS DE CLASIFICACÍON Y BÚSQUEDAS
TECNICAS DE CLASIFICACION TAD:
ORDENACIÓN POR LA INSERCÍON DIRECTA:
Se basa en el concepto de que en la iteración i-ésima los i primeros elementos
se encuentran ordenados entre ellos.
De ello se deduce que no es necesario ejecutar el bucle con un valor i = 1, ya que
un elemento siempre está ordenado con respecto a si mismo; es por ello que el
bucle en Este algoritmo debe de empezar por el valor 2.
En una iteración i concreta, la forma de llevar a cabo la ordenación consiste en
colocar el elemento i-ésimo en su posición correcta con respecto a los i-1
anteriores, que están ordenados entre ellos.
Para proceder de esta manera se comparará el elemento i-ésimo con todos los
anteriores, hasta que se encuentre uno que sea menor o igual que él, o se llegue
al principio del vector (en este caso el elemento i-ésimo es el más pequeño).
ORDENACION POR INTERCAMBIO DIRECTO:
Se basa en el concepto de que en la iteración i-ésima los i primeros elementos
son los menores. Por tanto, consiste en ir colocando en cada iteración i el i-ésimo
elemento más pequeño que haya en el vector. Para ello hace un primer recorrido
del vector, desde la primera posición hasta la penúltima, intentando seleccionar
para cada una de esas iteraciones el elemento más pequeño.
ORDENACCION POR SELECCIÓN DIRECTA:
En cada iteración i va a colocar en la posición i-ésima el elemento más
Pequeño de entre todos los que restan por ordenar.
5. La principal diferencia con el anterior (Burbuja) consiste en la forma en la cual
se determina cual es el elemento más pequeño de entre los que restan por
ordenar (definido por el bucle interno).
TECNICAS DE BUSQUEDA TAD:
BUSQUEDA SECUENCIAL:
Dado un conjunto de elementos almacenados en un vector, el método
Más sencillo para buscar un determinado valor dentro de dicho vector, es
recorrer el vector de forma secuencial desde el primer elemento hasta que se
encuentre el que se busca o se alcance el final.
BUSQUEDA BINARIA NO RECURSIVA:
Se examinará en primer lugar el elemento central del vector; si éste es el
Elemento buscado, entonces el proceso de búsqueda concluirá.
En caso contrario, se determina si el elemento buscado puede estar en la
Primera o segunda mitad del vector (si el elemento que estamos buscando es
menor o mayor que el elemento medio del vector).
Si es menor seguiremos la búsqueda por aquella mitad que contiene los
Elementos menores o iguales al elemento central (la parte izquierda si el vector
está ordenado de forma creciente); en caso contrario seguiremos la búsqueda
por la mitad que contiene los elementos estrictamente mayores.
6. 3-DEFINIR CONCEPTOS:
MANEJOS DE PUNTEROS: Un puntero es un dato que contiene una dirección
de memoria.
LISTAS: Una Lista es una colección lineal de objetos con las
Siguientes operaciones:
• crear una lista vacía
• determinar si la lista está vacía
• determinar cantidad de elementos
• añadir ítem en determinada posición
• eliminar iten de determinada posición
• ver el item en una posición dada.
ORDENACION DE BURBUJAS: es un sencillo algoritmo de ordenamiento.
Funciona revisando cada elemento de la lista que va a ser ordenada con el
siguiente, intercambiándolos de posición si están en el orden equivocado. Es
necesario revisar varias veces toda la lista hasta que no se necesiten más
intercambios, lo cual significa que la lista está ordenada.
ORDENACION POR SELECCIÓN:es un algoritmo de ordenamiento que requiere
O(n^2) operaciones para ordenar una lista de n elementos.
BUSQUEDA LINEAL: básicamente consiste en buscar de manera secuencial un
elemento, es decir, preguntar si el elemento buscado es igual al primero,
segundo, tercera y así sucesivamente hasta encontrar el deseado.