SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
EstucturasEstucturas de Datosde Datos PPááginagina 11
Unidad I
Tema 1: Introducción a las Estructuras de
Datos
Profesor: Jorge Escalona / Tobías Bolívar
Email: escaljorge@gmail.com / tobiasbolivar@gmail.com
Página Web: http://estructuradatos.tripod.com
EstucturasEstucturas de Datosde Datos PPááginagina 22
Unidad I:IntroducciUnidad I:Introduccióón a las Estructuras de Datosn a las Estructuras de Datos
• Orientación del Curso: Abstracción de Estructuras de Datos,
Reutilización, Orientación a Objetos.
• Objetivo del Curso: modelar una jerarquía de Tipos Abstractos de
Datos (TAD), que sirva como modelo de programación y permita
adquirir habilidades para la utilización de técnicas de encapsulación y
ocultación de información.
• Utilización de bibliotecas o librerias de clases (objetos) reutilizables.
• Implementación de Estructuras de Datos eficientes y confiables.
EstucturasEstucturas de Datosde Datos PPááginagina 33
Unidad I:IntroducciUnidad I:Introduccióón a las Estructuras de Datosn a las Estructuras de Datos
• Las EDs son los elementos base de la definición de tipos abstractos
de datos (TAD) y de todo el paradigma Orientado al objeto.
• Las EDs son derivables y concebibles como un ”bloque" o kit de
herramientas de utilidad en la construcción de software más complejo.
• La reutilización y encasuplamiento son técnicas de tanta utilidad como
la algorítmica clásica en el diseño y planteamiento de sistemas de
calidad.
• Una visión general de las EDs independiente de su implementación
permite centrarse en las características principales del modelo de cada
una de ellas.
Razones para la Orientación del Curso:
EstucturasEstucturas de Datosde Datos PPááginagina 44
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
• La Abstracción es un proceso mental que tiene dos aspectos
complementarios:
• El aspecto de destacar los detalles relevantes del objeto en
estudio.
• El aspecto de ignorar los detalles irrelevantes del objeto. Se
entiende que son irrelevantes en ese nivel de abstracción. Si
descendemos de nivel, es probable que algunos de estos
detalles pasen a ser relevantes.
La abstracción en los lenguajes de programación:
EstucturasEstucturas de Datosde Datos PPááginagina 55
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
• Lenguajes de alto nivel (mayor abstracción) vs. lenguajes
ensambladores (menor abstracción).
• Procedimientos parametrizados que permiten dar un nombre a un
conjunto complejo de instrucciones y activarlas con una sola
instrucción
• Las construcciones de sincronización de proceso en lenguajes de
programación concurrentes.
• Las especificaciones formales de lenguajes mediante predicados.
La abstracción en los lenguajes de programación (evolución):
EstucturasEstucturas de Datosde Datos PPááginagina 66
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
• Un mismo estado puede pertenecer a tipos diferentes; p.ej., el nº 4, puede ser
un entero, un real, un complejo, un racional o un natural.
• El usuario puede construir sus propios tipos de datos en un lenguaje
determinado, mediante las construcciones sintácticas que se le den para ello.
• Así, las estructuras de datos se crean usando constructores predefinidos, (de
especial utilidad son los registros y matrices), junto con los tipos que
suministra el lenguaje: REAL, INTEGER, CHAR, BOOLEAN, etc.
• Los tipos de datos definidos por el usuario también se pueden usar para crear
otras estructuras de datos más complejas.
Tipos de Datos
Un tipo de datos es un conjunto de estados o valores permitidos, junto
con las operaciones definidas para sus valores.
Operaciones Tipo Dato = Operaciones constructores + Operaciones base
EstucturasEstucturas de Datosde Datos PPááginagina 77
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
• Un TAD permite la construcción de casi cualquier tipo de datos, atendiendo
sólo a criterios de comportamiento.
• Su objetivo es hacer referencia a una clase de objetos (conjunto de estados)
definidos por una especificación independiente de la representación. La
implementación del tipo se oculta al usuario del programa.
Tipos Abstractos de Datos
Un tipo de dato abstracto es una colección de valores y de operaciones
que se definen mediante una especificación que es independiente de
cualquier representación.
TAD = Representación (datos) + Operaciones (funciones y procedimientos)
EstucturasEstucturas de Datosde Datos PPááginagina 88
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
• Tipo de Dato: centrado en la implementación (cómo lo hace).
• TAD: centrado en el comportamiento (qué hace).
• En un TAD se pueden utilizar diferentes implementaciones,
manteniendo su comportamiento y su interfaz con el exterior.
• Cambios en la implementación del TAD no afectan el resto del
sistema.
Tipos Abstractos de Datos
EstucturasEstucturas de Datosde Datos PPááginagina 99
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
Estructura de un
Tipo Abstracto de Dato
Operación 1 Operación 3
Operación 2 Operación 4
... ...
Interfaz Pública
Implementación de
métodos:
Código Operación 1
Código Operación 2
Código Operación 3
Código Operación 4
....
Representación:
estructura de datos
(variables de instancia)
Implementación Privada
• Interfaz Pública: operaciones y
propiedades que permiten su interacción
con el resto del sistema.
• Implementación privada:
representaciones de datos e
implementación de las operaciones.
EstucturasEstucturas de Datosde Datos PPááginagina 1010
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
• La especificación del tipo: nombre del tipo y la especificación
(sintáctica y semántica) de las operaciones permitidas..
• La implementación del tipo: conocida sólo por el programador,
consiste en la representación del tipo por medio de otros tipos y en la
implementación de las operaciones en términos de dicha
representación .
Partes de un Tipo Abstracto de Dato
EstucturasEstucturas de Datosde Datos PPááginagina 1111
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
• Una especificación formal es la acción de determinar o explicar en
términos formales o matemáticos la cosa deseada. Una implantación
correcta del TAD cumple con todos los axiomas especificados para él.
• La especificación formal se compone de: una especificación
sintáctica donde se definen los nombres, dominios y rangos de las
operaciones; y una especificación semántica que está compuesta
del conjunto de axiomas en forma de ecuaciones, que dicen como
opera cada una de las operaciones especificadas sobre las otras.
Especificación de un Tipo Abstracto de Dato
EstucturasEstucturas de Datosde Datos PPááginagina 1212
Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos
En resumen, el primer paso al diseñar un TAD es crear una especificación
formal mediante la cual el implementador no tenga duda alguna sobre las
características del producto software que se le está pidiendo que
desarrolle.
Especificación de un Tipo Abstracto de Dato
EstucturasEstucturas de Datosde Datos PPááginagina 1313
UnidadUnidad I:TiposI:Tipos Abstractos de DatosAbstractos de Datos
Tipo de dato: Pila[elemento:tipoEle]
Especificación sintáctica:
CrearPila() -> Pila, Crea la pila
MeterElePila(Pila,tipoEle) -> Pila, Inserta un nuevo elemento en el tope
SacarElePila(Pila) -> Pila, Elimina el elemento que está en el tope
ConTopePila(Pila) -> tipoEle / {TipoEleNoDef}, Consulta el elemento que está en el tope
PilaVacia(Pila) -> Lógico, Verifica si la pila está vacía
EliminarPila(Pila) -> . Destruye la pila
Especificación semántica:
Declaración: P: Pila, ele: tipoEle;
SacarElePila(CreaPila()) = CrearPila()
ConTopePila(CrearPila()) = {TipoEleNoDef}
ConTopePila(MeterElePila(P,ele)) = ele
PilaVacía(CrearPila()) = Verdadero
PilaVacia(MeterElePila(P,ele)) =Falso
Especificación de un Tipo Abstracto de Dato (Ejemplo)
EstucturasEstucturas de Datosde Datos PPááginagina 1414
Unidad I:Unidad I: Facilidades de los Lenguajes para la EspecificaciFacilidades de los Lenguajes para la Especificacióón den de TADsTADs
• Poseen algunas facilidades para la abstracción:
– Posibilidad de ocultar una implementación dentro de
procedimientos.
– Permite definir nuevos tipos de datos:
• Posibilidad de definir y manipular registros.
• Posibilidad de definir tipos de datos nuevos a partir de los ya
existentes.
• Un TAD se puede implementar como una unidad, librería o un objeto.
Lenguajes Estructurados (Pascal, C, etc..)
EstucturasEstucturas de Datosde Datos PPááginagina 1515
Unidad I:Unidad I: Facilidades de los Lenguajes para la EspecificaciFacilidades de los Lenguajes para la Especificacióón den de TADsTADs
• Un paso más en la abstracción de datos, nos lleva a los lenguajes de
programación orientados a objetos, tales como Smalltalk, C++, Eiffel,
Beta, Java, etc.
• En la metodología orientada a objetos, un objeto no es más que un
conjunto de datos privados (cuyos valores dan lugar al estado del
objeto), y unas operaciones para acceder y procesar los datos.
• Un TAD se puede implementar como una clase.
Lenguajes orientados a objetos
EstucturasEstucturas de Datosde Datos PPááginagina 1616
Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO
• Clase: es un modelo que define la estructura y el comportamiento de un
conjunto de objetos que tienen el mismo patrón estructural y de
comportamiento.
• Clasificación: es la agrupación de objetos con propiedades y comportamiento
similares dentro de una clase.
• Instancia de una clase: cada objeto que pertenece a una determinada clase.
• Instanciación: es el proceso de generación o creación de las instancias de
una clase.
• Extensión de la clase: el conjunto de todas las instancias de una
determinada clase.
• Superclase: clase más general o superior a una clase particular.
• Subclase: clase particular de una superclase o clase superior.
• Jerarquía de clases: conjunto de superclases y subclases relacionadas o
derivadas entre sí.
• Metaclase: es la clase que define todas las clases del sistema.
EstucturasEstucturas de Datosde Datos PPááginagina 1717
Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO
Ejemplo de Jerarquía
de Clases
EstucturasEstucturas de Datosde Datos PPááginagina 1818
Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO
• Generalización: es un proceso de
abstracción en el cual un conjunto
de clases existentes, que tienen
atributos y operaciones comunes es
referido por una clase genérica a un
nivel mayor de abstracción.
• Especialización: es el proceso
inverso de la generalización, ya que
una subclase se crea a partir de una
clase ya existente. Soportado por la
mayoría de los sistemas orientados
por objetos.
EstucturasEstucturas de Datosde Datos PPááginagina 1919
Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO
• Herencia: es la propiedad que tienen las clases de heredar de sus
superclases su estructura y/o comportamiento.
• Herencia simple: la subclase hereda solamente de una superclase.
• Herencia múltiple: la subclase hereda de varias superclases.
• Polimorfismo: utilización del mismo nombre para la definición de un método
en varias clases. Ejemplo: el operador + para tipos numéricos y para tipos
caracter.
• Reescritura o sobrecarga: permite nombrar código diferente con el mismo
nombre para más de una clase de objetos.
• Encadenamiento tardío: permite seleccionar el código adecuado al objeto
definido en la invocación del método.
EstucturasEstucturas de Datosde Datos PPááginagina 2020
Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO
• Composición o agregación: permite definir clases de objetos compuestos,
ya que permite colocar atributos en la clase que pertenecen a otra clase. Ella
representa la relación ES-PARTE-DE entre una entidad compuesta y sus
entidades componentes.
EstucturasEstucturas de Datosde Datos PPááginagina 2121
Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO
• Protocolo o interfaz: es el conjunto de operaciones o métodos declarados
como posibles de invocar o activar por los otros objetos.
• Mensajes: son la especificación de un objeto junto con la invocación de uno
de sus métodos. Por lo general, el pase de mensajes tiene la forma
• objetoDestino.nombreDelMétodo(listaDeArgumentos)
• Encapsulación: es la propiedad que permite que los objetos sean definidos
en su estructura y su comportamiento, obligando al uso del pase de mensajes
o de la invocación de sus métodos, si se quiere acceder al objeto.
EstucturasEstucturas de Datosde Datos PPááginagina 2222
Unidad I: Ventajas y Desventajas de la POOUnidad I: Ventajas y Desventajas de la POO
Ventajas
• La abstracción de datos y el ocultamiento de la información aumentan la
confiabilidad y ayudan a separar la especificación de la implantación.
• El encadenamiento dinámico incrementa la flexibilidad.
• La herencia junto con el encadenamiento tardío permite la reusabilidad
aumentando así la productividad.
Desventajas
• El costo de tiempo de ejecución del encadenamiento tardío puede llegar a
ser importante dependiendo de la aplicación.
• La implantación con lenguajes orientados por objetos es más compleja
que con los lenguajes convencionales.
• El programador debe leer con frecuencia extensas librerías de clases.
EstucturasEstucturas de Datosde Datos PPááginagina 2323
Unidad I: TUnidad I: Téécnicas de Disecnicas de Diseñño e Implementacio e Implementacióón de TADn de TAD’’ss
• Basadas en el uso de variables estáticas y Arreglos o Vectores.
• Con una variable estática, la cantidad de memoria (espacio) ocupada debe ser
declarado por anticipado y no puede ser incrementado durante la ejecución del
programa si se necesitara más espacio de memoria.
• Un arreglo es una estructura estática dado que la cantidad exacta de memoria
se fija por anticipado con la declaración del tamaño del arreglo.
• Las estructuras estáticas de datos son útiles cuando se conoce de antemano
el número total de elementos a procesar o la cantidad máxima de éstos.
Estructuras Estáticas de Datos
1 2 3 4 5 .... n
X O B A L T
Primer
elemento
N-ésimo
elemento
EstucturasEstucturas de Datosde Datos PPááginagina 2424
Unidad I: TUnidad I: Téécnicas de Disecnicas de Diseñño e Implementacio e Implementacióón de TADn de TAD’’ss
• Basadas en Punteros y en colecciones variables de elementos (nodos).
• Un puntero es un tipo de dato simple que contiene la dirección de una
variable o estructura en vez de un valor de dato.
• Los punteros (apuntadores) permiten la creación de estructuras de datos
dinámicas, las cuales tienen la capacidad de variar en tamaño y ocupar tanta
memoria como utlicen realmente.
• Las variables que se crean y destruyen durante la ejecución del programa se
llaman variables dinámicas.
• Una estructura de datos dinámica es una colección de elementos llamados
nodos de la estructura –normalmente de tipo registro- que se enlazan o
encadenan en una secuncia determinada.
• El enlace entre nodos se establece asociando con cada nodo un puntero que
apunta al nodo siguiente de la estructura.
• Existen diferentes tipos de estructuras dinámicas de datos, siendo las más
significativas las listas enlazadas, los árboles y grafos.
Estructuras Dinámicas de Datos
EstucturasEstucturas de Datosde Datos PPááginagina 2525
Unidad I: TUnidad I: Téécnicas de Disecnicas de Diseñño e Implementacio e Implementacióón den de TADTAD’’ss
• Explique la relación entre los TAD’s en los lenguajes procedurales y las clases y
objetos en la POO.
• Da 3 ejemplos de jerarquía de especialización y 3 de composición o dependencias de
estructuras.
• Investigar las metodologías de diagramación para la programación orientada a
objetos.
• Realizar una pequeña investigación comparativa de los diferentes lenguajes de
programación (orientada a objetos) que existen, y su evolución:
– Historia
– Evolución
– Ventajas y desventajas.
– Conclusiones.
• ¿Cómo clasificaríamos el entorno de tu casa para que funcione correctamente?
– Pista: Clase base: la casa.Luego la recamara, la sala, el baño, la cocina, etc? Luego,
tomando la recamara: ¿qué hay en ella?.- cama, cómoda/closet, mesa, silla, etc.
Actividades de Investigación:

Más contenido relacionado

La actualidad más candente

E.si.m.l.p
 E.si.m.l.p E.si.m.l.p
E.si.m.l.p
Ayhli123
 
Copia de copia de e.si.m.l.p
Copia de copia de e.si.m.l.pCopia de copia de e.si.m.l.p
Copia de copia de e.si.m.l.p
BangMiriam3003
 
unidad 3
unidad 3unidad 3
unidad 3
deniizz
 
Sistema de bases orientada a objetos y relacional
Sistema de bases orientada a objetos y relacionalSistema de bases orientada a objetos y relacional
Sistema de bases orientada a objetos y relacional
Flor de la Luz
 

La actualidad más candente (15)

Introducción taller Atlas.ti versión 7
Introducción taller Atlas.ti versión 7Introducción taller Atlas.ti versión 7
Introducción taller Atlas.ti versión 7
 
1-NAC-TDA Estructuras de Datos
1-NAC-TDA Estructuras de Datos1-NAC-TDA Estructuras de Datos
1-NAC-TDA Estructuras de Datos
 
Programacion o.o.
Programacion o.o.Programacion o.o.
Programacion o.o.
 
ALP Unidad 1: Introducción a los fundamentos de la programación estructurada
ALP Unidad 1: Introducción a los fundamentos de la programación estructuradaALP Unidad 1: Introducción a los fundamentos de la programación estructurada
ALP Unidad 1: Introducción a los fundamentos de la programación estructurada
 
Datamining y Machine Learning para Ciencias Biológicas
Datamining y Machine Learning para Ciencias BiológicasDatamining y Machine Learning para Ciencias Biológicas
Datamining y Machine Learning para Ciencias Biológicas
 
Nhibernate
NhibernateNhibernate
Nhibernate
 
Uni3m
Uni3mUni3m
Uni3m
 
Guía de estudio -Módulo 1
Guía de estudio -Módulo 1Guía de estudio -Módulo 1
Guía de estudio -Módulo 1
 
E.si.m.l.p
 E.si.m.l.p E.si.m.l.p
E.si.m.l.p
 
Copia de copia de e.si.m.l.p
Copia de copia de e.si.m.l.pCopia de copia de e.si.m.l.p
Copia de copia de e.si.m.l.p
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
e.si.m.l.p
 e.si.m.l.p e.si.m.l.p
e.si.m.l.p
 
unidad 3
unidad 3unidad 3
unidad 3
 
1 base de_datos_distribuidas
1 base de_datos_distribuidas1 base de_datos_distribuidas
1 base de_datos_distribuidas
 
Sistema de bases orientada a objetos y relacional
Sistema de bases orientada a objetos y relacionalSistema de bases orientada a objetos y relacional
Sistema de bases orientada a objetos y relacional
 

Similar a Tema1 (2)

Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
Ezer Ayala Mutul
 
Presentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uexPresentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uex
victoruex
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datos
Jose Armando
 

Similar a Tema1 (2) (20)

Jyoc java-cap19 tad (tipos abstractos de datos)
Jyoc java-cap19 tad (tipos abstractos de datos)Jyoc java-cap19 tad (tipos abstractos de datos)
Jyoc java-cap19 tad (tipos abstractos de datos)
 
Estructuta de datos
Estructuta de datosEstructuta de datos
Estructuta de datos
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Estructurade datos
Estructurade datosEstructurade datos
Estructurade datos
 
Presentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uexPresentacion unidad u1_estructura_de_datos_victor_uex
Presentacion unidad u1_estructura_de_datos_victor_uex
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
equipo 3 clasificación de estructura(2.pptx
equipo 3  clasificación de estructura(2.pptxequipo 3  clasificación de estructura(2.pptx
equipo 3 clasificación de estructura(2.pptx
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TADEstructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOSPRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
 
Estructura de datos pdf
Estructura de datos pdfEstructura de datos pdf
Estructura de datos pdf
 
ESTRUCTURA DE DATOS.pptx
ESTRUCTURA DE DATOS.pptxESTRUCTURA DE DATOS.pptx
ESTRUCTURA DE DATOS.pptx
 
PRESENTACION EVIDENCIAS RUBI VERONICA ISC J3 A
PRESENTACION EVIDENCIAS RUBI VERONICA ISC J3 APRESENTACION EVIDENCIAS RUBI VERONICA ISC J3 A
PRESENTACION EVIDENCIAS RUBI VERONICA ISC J3 A
 
Evidencias1 (Diapositivas - Rubi Veronica)
Evidencias1 (Diapositivas  - Rubi Veronica)Evidencias1 (Diapositivas  - Rubi Veronica)
Evidencias1 (Diapositivas - Rubi Veronica)
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datos
 
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Algoritsmos unefa
Algoritsmos unefaAlgoritsmos unefa
Algoritsmos unefa
 

Más de Pedro Sánchez (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Guión didáctico
Guión didácticoGuión didáctico
Guión didáctico
 
Tarjeta Madre
Tarjeta MadreTarjeta Madre
Tarjeta Madre
 
Importancia de las redes sociales en la Educación
Importancia de las redes sociales en la EducaciónImportancia de las redes sociales en la Educación
Importancia de las redes sociales en la Educación
 
Evolucion de la web
Evolucion de la webEvolucion de la web
Evolucion de la web
 
Plagio en Internet Grupo los Integradores
Plagio en Internet Grupo los IntegradoresPlagio en Internet Grupo los Integradores
Plagio en Internet Grupo los Integradores
 
Tema8
Tema8Tema8
Tema8
 
Tema7
Tema7Tema7
Tema7
 
Tema6
Tema6Tema6
Tema6
 
Tema5
Tema5Tema5
Tema5
 
Tema4
Tema4Tema4
Tema4
 
Tema3
Tema3Tema3
Tema3
 
Tema2
Tema2Tema2
Tema2
 
Obj 10 capa 6 - presentacion
Obj 10   capa 6 - presentacionObj 10   capa 6 - presentacion
Obj 10 capa 6 - presentacion
 
Obj 9 capa 5 - sesion
Obj 9   capa 5 - sesionObj 9   capa 5 - sesion
Obj 9 capa 5 - sesion
 
Obj 8 capa 4 - transporte
Obj 8   capa 4 - transporteObj 8   capa 4 - transporte
Obj 8 capa 4 - transporte
 
Obj 7.4 capa 3 - red - router
Obj 7.4   capa 3 - red - router Obj 7.4   capa 3 - red - router
Obj 7.4 capa 3 - red - router
 
Obj 7.3 capa 3 - red - sub redes
Obj 7.3   capa 3 - red - sub redes Obj 7.3   capa 3 - red - sub redes
Obj 7.3 capa 3 - red - sub redes
 
Obj 7.2 capa 3 - red - ip clase d-e sub redes
Obj 7.2   capa 3 - red - ip clase d-e sub redes Obj 7.2   capa 3 - red - ip clase d-e sub redes
Obj 7.2 capa 3 - red - ip clase d-e sub redes
 
Obj 7.1 capa 3 - red - direccionamiento ip
Obj 7.1   capa 3 - red - direccionamiento ipObj 7.1   capa 3 - red - direccionamiento ip
Obj 7.1 capa 3 - red - direccionamiento ip
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 

Último (10)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Tema1 (2)

  • 1. EstucturasEstucturas de Datosde Datos PPááginagina 11 Unidad I Tema 1: Introducción a las Estructuras de Datos Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Página Web: http://estructuradatos.tripod.com
  • 2. EstucturasEstucturas de Datosde Datos PPááginagina 22 Unidad I:IntroducciUnidad I:Introduccióón a las Estructuras de Datosn a las Estructuras de Datos • Orientación del Curso: Abstracción de Estructuras de Datos, Reutilización, Orientación a Objetos. • Objetivo del Curso: modelar una jerarquía de Tipos Abstractos de Datos (TAD), que sirva como modelo de programación y permita adquirir habilidades para la utilización de técnicas de encapsulación y ocultación de información. • Utilización de bibliotecas o librerias de clases (objetos) reutilizables. • Implementación de Estructuras de Datos eficientes y confiables.
  • 3. EstucturasEstucturas de Datosde Datos PPááginagina 33 Unidad I:IntroducciUnidad I:Introduccióón a las Estructuras de Datosn a las Estructuras de Datos • Las EDs son los elementos base de la definición de tipos abstractos de datos (TAD) y de todo el paradigma Orientado al objeto. • Las EDs son derivables y concebibles como un ”bloque" o kit de herramientas de utilidad en la construcción de software más complejo. • La reutilización y encasuplamiento son técnicas de tanta utilidad como la algorítmica clásica en el diseño y planteamiento de sistemas de calidad. • Una visión general de las EDs independiente de su implementación permite centrarse en las características principales del modelo de cada una de ellas. Razones para la Orientación del Curso:
  • 4. EstucturasEstucturas de Datosde Datos PPááginagina 44 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos • La Abstracción es un proceso mental que tiene dos aspectos complementarios: • El aspecto de destacar los detalles relevantes del objeto en estudio. • El aspecto de ignorar los detalles irrelevantes del objeto. Se entiende que son irrelevantes en ese nivel de abstracción. Si descendemos de nivel, es probable que algunos de estos detalles pasen a ser relevantes. La abstracción en los lenguajes de programación:
  • 5. EstucturasEstucturas de Datosde Datos PPááginagina 55 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos • Lenguajes de alto nivel (mayor abstracción) vs. lenguajes ensambladores (menor abstracción). • Procedimientos parametrizados que permiten dar un nombre a un conjunto complejo de instrucciones y activarlas con una sola instrucción • Las construcciones de sincronización de proceso en lenguajes de programación concurrentes. • Las especificaciones formales de lenguajes mediante predicados. La abstracción en los lenguajes de programación (evolución):
  • 6. EstucturasEstucturas de Datosde Datos PPááginagina 66 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos • Un mismo estado puede pertenecer a tipos diferentes; p.ej., el nº 4, puede ser un entero, un real, un complejo, un racional o un natural. • El usuario puede construir sus propios tipos de datos en un lenguaje determinado, mediante las construcciones sintácticas que se le den para ello. • Así, las estructuras de datos se crean usando constructores predefinidos, (de especial utilidad son los registros y matrices), junto con los tipos que suministra el lenguaje: REAL, INTEGER, CHAR, BOOLEAN, etc. • Los tipos de datos definidos por el usuario también se pueden usar para crear otras estructuras de datos más complejas. Tipos de Datos Un tipo de datos es un conjunto de estados o valores permitidos, junto con las operaciones definidas para sus valores. Operaciones Tipo Dato = Operaciones constructores + Operaciones base
  • 7. EstucturasEstucturas de Datosde Datos PPááginagina 77 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos • Un TAD permite la construcción de casi cualquier tipo de datos, atendiendo sólo a criterios de comportamiento. • Su objetivo es hacer referencia a una clase de objetos (conjunto de estados) definidos por una especificación independiente de la representación. La implementación del tipo se oculta al usuario del programa. Tipos Abstractos de Datos Un tipo de dato abstracto es una colección de valores y de operaciones que se definen mediante una especificación que es independiente de cualquier representación. TAD = Representación (datos) + Operaciones (funciones y procedimientos)
  • 8. EstucturasEstucturas de Datosde Datos PPááginagina 88 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos • Tipo de Dato: centrado en la implementación (cómo lo hace). • TAD: centrado en el comportamiento (qué hace). • En un TAD se pueden utilizar diferentes implementaciones, manteniendo su comportamiento y su interfaz con el exterior. • Cambios en la implementación del TAD no afectan el resto del sistema. Tipos Abstractos de Datos
  • 9. EstucturasEstucturas de Datosde Datos PPááginagina 99 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos Estructura de un Tipo Abstracto de Dato Operación 1 Operación 3 Operación 2 Operación 4 ... ... Interfaz Pública Implementación de métodos: Código Operación 1 Código Operación 2 Código Operación 3 Código Operación 4 .... Representación: estructura de datos (variables de instancia) Implementación Privada • Interfaz Pública: operaciones y propiedades que permiten su interacción con el resto del sistema. • Implementación privada: representaciones de datos e implementación de las operaciones.
  • 10. EstucturasEstucturas de Datosde Datos PPááginagina 1010 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos • La especificación del tipo: nombre del tipo y la especificación (sintáctica y semántica) de las operaciones permitidas.. • La implementación del tipo: conocida sólo por el programador, consiste en la representación del tipo por medio de otros tipos y en la implementación de las operaciones en términos de dicha representación . Partes de un Tipo Abstracto de Dato
  • 11. EstucturasEstucturas de Datosde Datos PPááginagina 1111 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos • Una especificación formal es la acción de determinar o explicar en términos formales o matemáticos la cosa deseada. Una implantación correcta del TAD cumple con todos los axiomas especificados para él. • La especificación formal se compone de: una especificación sintáctica donde se definen los nombres, dominios y rangos de las operaciones; y una especificación semántica que está compuesta del conjunto de axiomas en forma de ecuaciones, que dicen como opera cada una de las operaciones especificadas sobre las otras. Especificación de un Tipo Abstracto de Dato
  • 12. EstucturasEstucturas de Datosde Datos PPááginagina 1212 Unidad I:Tipos Abstractos de DatosUnidad I:Tipos Abstractos de Datos En resumen, el primer paso al diseñar un TAD es crear una especificación formal mediante la cual el implementador no tenga duda alguna sobre las características del producto software que se le está pidiendo que desarrolle. Especificación de un Tipo Abstracto de Dato
  • 13. EstucturasEstucturas de Datosde Datos PPááginagina 1313 UnidadUnidad I:TiposI:Tipos Abstractos de DatosAbstractos de Datos Tipo de dato: Pila[elemento:tipoEle] Especificación sintáctica: CrearPila() -> Pila, Crea la pila MeterElePila(Pila,tipoEle) -> Pila, Inserta un nuevo elemento en el tope SacarElePila(Pila) -> Pila, Elimina el elemento que está en el tope ConTopePila(Pila) -> tipoEle / {TipoEleNoDef}, Consulta el elemento que está en el tope PilaVacia(Pila) -> Lógico, Verifica si la pila está vacía EliminarPila(Pila) -> . Destruye la pila Especificación semántica: Declaración: P: Pila, ele: tipoEle; SacarElePila(CreaPila()) = CrearPila() ConTopePila(CrearPila()) = {TipoEleNoDef} ConTopePila(MeterElePila(P,ele)) = ele PilaVacía(CrearPila()) = Verdadero PilaVacia(MeterElePila(P,ele)) =Falso Especificación de un Tipo Abstracto de Dato (Ejemplo)
  • 14. EstucturasEstucturas de Datosde Datos PPááginagina 1414 Unidad I:Unidad I: Facilidades de los Lenguajes para la EspecificaciFacilidades de los Lenguajes para la Especificacióón den de TADsTADs • Poseen algunas facilidades para la abstracción: – Posibilidad de ocultar una implementación dentro de procedimientos. – Permite definir nuevos tipos de datos: • Posibilidad de definir y manipular registros. • Posibilidad de definir tipos de datos nuevos a partir de los ya existentes. • Un TAD se puede implementar como una unidad, librería o un objeto. Lenguajes Estructurados (Pascal, C, etc..)
  • 15. EstucturasEstucturas de Datosde Datos PPááginagina 1515 Unidad I:Unidad I: Facilidades de los Lenguajes para la EspecificaciFacilidades de los Lenguajes para la Especificacióón den de TADsTADs • Un paso más en la abstracción de datos, nos lleva a los lenguajes de programación orientados a objetos, tales como Smalltalk, C++, Eiffel, Beta, Java, etc. • En la metodología orientada a objetos, un objeto no es más que un conjunto de datos privados (cuyos valores dan lugar al estado del objeto), y unas operaciones para acceder y procesar los datos. • Un TAD se puede implementar como una clase. Lenguajes orientados a objetos
  • 16. EstucturasEstucturas de Datosde Datos PPááginagina 1616 Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO • Clase: es un modelo que define la estructura y el comportamiento de un conjunto de objetos que tienen el mismo patrón estructural y de comportamiento. • Clasificación: es la agrupación de objetos con propiedades y comportamiento similares dentro de una clase. • Instancia de una clase: cada objeto que pertenece a una determinada clase. • Instanciación: es el proceso de generación o creación de las instancias de una clase. • Extensión de la clase: el conjunto de todas las instancias de una determinada clase. • Superclase: clase más general o superior a una clase particular. • Subclase: clase particular de una superclase o clase superior. • Jerarquía de clases: conjunto de superclases y subclases relacionadas o derivadas entre sí. • Metaclase: es la clase que define todas las clases del sistema.
  • 17. EstucturasEstucturas de Datosde Datos PPááginagina 1717 Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO Ejemplo de Jerarquía de Clases
  • 18. EstucturasEstucturas de Datosde Datos PPááginagina 1818 Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO • Generalización: es un proceso de abstracción en el cual un conjunto de clases existentes, que tienen atributos y operaciones comunes es referido por una clase genérica a un nivel mayor de abstracción. • Especialización: es el proceso inverso de la generalización, ya que una subclase se crea a partir de una clase ya existente. Soportado por la mayoría de los sistemas orientados por objetos.
  • 19. EstucturasEstucturas de Datosde Datos PPááginagina 1919 Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO • Herencia: es la propiedad que tienen las clases de heredar de sus superclases su estructura y/o comportamiento. • Herencia simple: la subclase hereda solamente de una superclase. • Herencia múltiple: la subclase hereda de varias superclases. • Polimorfismo: utilización del mismo nombre para la definición de un método en varias clases. Ejemplo: el operador + para tipos numéricos y para tipos caracter. • Reescritura o sobrecarga: permite nombrar código diferente con el mismo nombre para más de una clase de objetos. • Encadenamiento tardío: permite seleccionar el código adecuado al objeto definido en la invocación del método.
  • 20. EstucturasEstucturas de Datosde Datos PPááginagina 2020 Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO • Composición o agregación: permite definir clases de objetos compuestos, ya que permite colocar atributos en la clase que pertenecen a otra clase. Ella representa la relación ES-PARTE-DE entre una entidad compuesta y sus entidades componentes.
  • 21. EstucturasEstucturas de Datosde Datos PPááginagina 2121 Unidad I:Unidad I: Mecanismos para la abstracciMecanismos para la abstraccióón de datos en LOOn de datos en LOO • Protocolo o interfaz: es el conjunto de operaciones o métodos declarados como posibles de invocar o activar por los otros objetos. • Mensajes: son la especificación de un objeto junto con la invocación de uno de sus métodos. Por lo general, el pase de mensajes tiene la forma • objetoDestino.nombreDelMétodo(listaDeArgumentos) • Encapsulación: es la propiedad que permite que los objetos sean definidos en su estructura y su comportamiento, obligando al uso del pase de mensajes o de la invocación de sus métodos, si se quiere acceder al objeto.
  • 22. EstucturasEstucturas de Datosde Datos PPááginagina 2222 Unidad I: Ventajas y Desventajas de la POOUnidad I: Ventajas y Desventajas de la POO Ventajas • La abstracción de datos y el ocultamiento de la información aumentan la confiabilidad y ayudan a separar la especificación de la implantación. • El encadenamiento dinámico incrementa la flexibilidad. • La herencia junto con el encadenamiento tardío permite la reusabilidad aumentando así la productividad. Desventajas • El costo de tiempo de ejecución del encadenamiento tardío puede llegar a ser importante dependiendo de la aplicación. • La implantación con lenguajes orientados por objetos es más compleja que con los lenguajes convencionales. • El programador debe leer con frecuencia extensas librerías de clases.
  • 23. EstucturasEstucturas de Datosde Datos PPááginagina 2323 Unidad I: TUnidad I: Téécnicas de Disecnicas de Diseñño e Implementacio e Implementacióón de TADn de TAD’’ss • Basadas en el uso de variables estáticas y Arreglos o Vectores. • Con una variable estática, la cantidad de memoria (espacio) ocupada debe ser declarado por anticipado y no puede ser incrementado durante la ejecución del programa si se necesitara más espacio de memoria. • Un arreglo es una estructura estática dado que la cantidad exacta de memoria se fija por anticipado con la declaración del tamaño del arreglo. • Las estructuras estáticas de datos son útiles cuando se conoce de antemano el número total de elementos a procesar o la cantidad máxima de éstos. Estructuras Estáticas de Datos 1 2 3 4 5 .... n X O B A L T Primer elemento N-ésimo elemento
  • 24. EstucturasEstucturas de Datosde Datos PPááginagina 2424 Unidad I: TUnidad I: Téécnicas de Disecnicas de Diseñño e Implementacio e Implementacióón de TADn de TAD’’ss • Basadas en Punteros y en colecciones variables de elementos (nodos). • Un puntero es un tipo de dato simple que contiene la dirección de una variable o estructura en vez de un valor de dato. • Los punteros (apuntadores) permiten la creación de estructuras de datos dinámicas, las cuales tienen la capacidad de variar en tamaño y ocupar tanta memoria como utlicen realmente. • Las variables que se crean y destruyen durante la ejecución del programa se llaman variables dinámicas. • Una estructura de datos dinámica es una colección de elementos llamados nodos de la estructura –normalmente de tipo registro- que se enlazan o encadenan en una secuncia determinada. • El enlace entre nodos se establece asociando con cada nodo un puntero que apunta al nodo siguiente de la estructura. • Existen diferentes tipos de estructuras dinámicas de datos, siendo las más significativas las listas enlazadas, los árboles y grafos. Estructuras Dinámicas de Datos
  • 25. EstucturasEstucturas de Datosde Datos PPááginagina 2525 Unidad I: TUnidad I: Téécnicas de Disecnicas de Diseñño e Implementacio e Implementacióón den de TADTAD’’ss • Explique la relación entre los TAD’s en los lenguajes procedurales y las clases y objetos en la POO. • Da 3 ejemplos de jerarquía de especialización y 3 de composición o dependencias de estructuras. • Investigar las metodologías de diagramación para la programación orientada a objetos. • Realizar una pequeña investigación comparativa de los diferentes lenguajes de programación (orientada a objetos) que existen, y su evolución: – Historia – Evolución – Ventajas y desventajas. – Conclusiones. • ¿Cómo clasificaríamos el entorno de tu casa para que funcione correctamente? – Pista: Clase base: la casa.Luego la recamara, la sala, el baño, la cocina, etc? Luego, tomando la recamara: ¿qué hay en ella?.- cama, cómoda/closet, mesa, silla, etc. Actividades de Investigación: