You are on page 1of 25

ESTRUCTURA DE

DATOS
Algoritmos, estructuras de datos y
Programacin Orientada a Objetos
(POO).

Algoritmo
Es

una secuencia de pasos


(mtodo) que nos permite
resolver un problema
determinado.
Condiciones:

Finitud.
Definibilidad.
Entrada.
Salida.
Efectividad.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

Algoritmos
Clasificacin

de algoritmos.

Algoritmo Determinista.
Algoritmo No determinista.
Consideraciones

al implementar
un algoritmo en una
computadora:
Tiempo.
Memoria.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

Tiempo de Ejecucin
N:

Lineal.
N2: Cuadrtico.
logN: Logartmico.
N*logN: N por logN.
N3: Cbico.
2N: Exponencial.

Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

Algoritmos
Clasificacin

de

problemas:
Problemas indecidibles.
Problemas decidibles.
Intratables.
Tratables.

Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

Estructuras de Datos
Es

una coleccin de datos que


pueden ser caracterizados por su
organizacin y las operaciones
que se definen de ella.
Se pretende con las estructuras
de datos facilitar un esquema
lgico para manipular los datos
en funcin del problema a tratar
y el algoritmo para resolverlo.
Programa = Estructura Datos +
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

Estructuras de Datos
Estticas

- Tamao en memoria fijo.

Arreglos (vectores, matrices), conjuntos,


cadenas.
Dinmicas

Tamao en memoria variable.

Listas (Pilas, Colas), listas con apuntadores,


rboles, grafos.
Lineales

Los datos se almacenan en


zonas contiguas.
Listas, pilas, colas.

No

Lineales Cada elemento puede tener


diferentes siguientes elementos.
rboles, grafos.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

Tipos Abstractos de Datos (TAD)


Abstraccin.

Para resolver un problema se identifican sus


caractersticas ms relevantes y se hace
una abstraccin un modelo del problema.
Funcionalidad en trminos de alto nivel.
Se agregan detalles en pasos o niveles
sucesivos en una descripcin de bajo
nivel.
Ventajas:

Limita la complejidad en cada paso.


El diseador no ve la implementacin.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

Tipos Abstractos de Datos (TAD)


La

abstraccin de datos es una


descripcin de los datos
requeridos y de las operaciones
que se deben ejecutar sobre
ellos.
Ventajas:
El diseador usa los datos sin
preocuparse en su representacin en
la memoria.
El diseo del programa es
Universidad Politcnica
Prof. Luis H. Cruz A.
independiente
de
cualquier
uso en 9
de Aguascalientes
Estructura de Datos

Tipos Abstractos de Datos (TAD)


TAD

Conjunto Elementos
manipulados por operaciones
como unin, interseccin,
diferencia de conjuntos.
TAD Entero Conjunto de
nmeros enteros {-, -3, -2,
-1, 0, 1, 2, 3, , }
TAD Complejo Conjunto de
nmeros complejos de tipo a + ib
donde a y b son reales y la i es
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

10

Tipos Abstractos de Datos (TAD)


Un

tipo de datos es una


implementacin de un TAD:
Tipo de datos integer en el lenguaje
de programacin Pascal es una
implementacin de un TAD entero.
Los tipos de dato int y long en C++
son implementaciones de TAD
entero.

Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

11

Tipos Abstractos de Datos (TAD)


Encapsulamiento

de datos.

El programa de aplicacin debe


referirse a las propiedades
esenciales de los datos y no de su
representacin en memoria.
Ventajas

del encapsulamiento:

Un tipo de datos encapsulado puede


ser modificado sin afectar a la
aplicacin.
Un tipo de datos encapsulado
permite la
reutilizacin
en
otras
Universidad
Politcnica
Prof. Luis
H. Cruz
A.
de Aguascalientes

Estructura de Datos

12

Programacin OO

Programacin estructurada
Ayud a la primera mejora de la tecnologa de
software

Los mayores logros:


A travs de la programacin orientada a objetos
que apareci en los 1980s y 1990s.

Tecnologa de objetos:
Data de los 1960s.
C++, desarrollado en los 1980s, basado en dos
lenguajes

C Desarrollado para crear el sistema operativo UNIX a


principios de los 1970s.
Simula 67 Programa de simulacin en 1967.

C++ integr las capacidades de C y agreg las de


Simula para creacin y manipulacin de objetos.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

13

Programacin OO
El

desarrollo de la POO empieza a


destacar durante la dcada de lo 80s
tomando en cuenta la programacin
estructurada, a la que engloba y dotando
al programador de nuevos elementos
para el anlisis y desarrollo de software.

Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

14

Programacin OO
Los

objetos corresponden a las


entidades del modelo que
existen en el sistema.
El paradigma OO est basado en
el encapsulamiento de los datos
y del cdigo relacionado con
cada objeto en una sola unidad.
Las interacciones entre objetos
se logran mediante mensajes.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

15

Programacin OO
Objetivos

de la POO:

Facilitar el desarrollo, extensin y


mejoramiento de los programas de
computadora.
Reutilizacin de los componentes de
software.

Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

16

Clases y objetos
Una

clase es una implementacin


de un TAD utilizando un lenguaje
de POO.
Un programa orientado a objetos
es una coleccin de clases que se
manipulan.
Cada objeto contiene:
Variables o atributos.
Mensajes o mtodos.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

17

Clases y objetos
Cada

objeto contiene:

Conjunto de variables que contienen los datos del objeto,


corresponde a los atributos del las entidades del sistema
existente.
Conjunto de mensajes a los que responde, que a su vez
pueden contener parmetros.
Conjunto de mtodos o cdigo que implementa el
mensaje, el mtodo devuelve un valor como respuesta al
mensaje.

Ejemplo:

El atributo direccin del


objeto empleado se puede representar
mediante:
Una variable direccin.
Un mensaje obtener-direccin cuya respuesta sea la
direccin.
Universidad Politcnica
Prof. Luis H. Cruz A.
de Aguascalientes
Estructura de Datos
Un mensaje establecer-direccin,
que
necesita un

18

Clases y objetos
Clases

de Objetos - Los objetos


similares, los que responden a
los mismos mensajes, utilizan los
mismos mtodos con variables
del mismo tipo y nombre, se
agrupan en clases.
Un objeto clase incluye:
Una variable de tipo conjunto cuyo valor es el
conjunto de todos los objetos que son
ejemplares de clase.
La implementacin
de un mtodo
para el
Universidad Politcnica
Prof. Luis H. Cruz A.
de Aguascalientes
Datos
mensaje nuevo,
que crea unEstructura
nuevode ejemplar
de

19

Definicin de la clase
empleado
Class empleado {
/*Variables o Atributos*/
string nombre;
string direccin;
string fecha-alta;
int sueldo;
/*Mensajes o Mtodos*/
int sueldo-anual();
string obtener-nombre();
string obtener-direccin();
int establecer-direccin (string nueva-direccin);
int antigedad();
};
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

20

Encapsulamiento de datos
El

objeto es una unidad atmica


que el usuario no puede partir.
El principio de atomicidad y el
ocultamiento de informacin se
conoce como encapsulamiento.
El usuario manipula al objeto
mediante los mtodos
suministrados.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

21

Herencia
Los

objetos de una clase que contengan


las variables definidas en sus
superclases se denomina herencia de
variables. Los mensajes y los mtodos
personaforma.
se heredan de la misma
Ejemplo:
ES
empleado

cliente

ES

administrativo

cajero

Universidad Politcnica
de Aguascalientes

secretario
Prof. Luis H. Cruz A.
Estructura de Datos

22

Herencia de jerarqua de
clases
Class persona {
string nombre;
string direccin;
string obtener-nombre();
string obtener-direccin();
int establecerdireccin( string nuevadireccin);
};
Class cliente isa persona {
int inters-prstamo;
};
Class empleado isa persona
{
date fecha-alta;
int sueldo;
int sueldo-anual();
int antigedad();
};

Class administrativo isa


empleado {
int nmero-despacho;
int nmero-cuentacorriente;
};
Class cajero isa empleado
{
int horas-semana;
int nmero-ventanilla;
};
Class secretario isa
empleado {
int horas-semana;
string jefe;
};

Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

23

Herencia simple y mltiple


La

herencia mltiple permite a las


clases heredar variables y
mtodos de mltiples superclases.
Los atributos y los mtodos de un
objeto son especificados una vez
y los heredan las subclases.
persona
empleado

temporal

Admvo.
tiempo
completo

permanente

cajero
por horas

administrativ
o

secretario
por horas

Universidad Politcnica
de Aguascalientes

cliente

cajero

cajero
tiempo
completo

secretario

secretario
tiempo
completo

Prof. Luis H. Cruz A.


Estructura de Datos

24

Polimorfismo
Un

objeto toma diferentes


formas.
Permite referirse a objetos de
diferentes clases mediante el
mismo elemento de programa.
Ejemplo:
La operacin Sueldo Anual se
ejecuta diferente si el objeto es un
administrativo, cajero o secretaria.
Universidad Politcnica
de Aguascalientes

Prof. Luis H. Cruz A.


Estructura de Datos

25

You might also like