Sunteți pe pagina 1din 10

1 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

1.

INTRODUCCION A LAS ESTRUCTURA DE DATOS

1.1. Abstraccin Trminos simples: Es un proceso mental, mediante el cual se extraen los rasgos esenciales de algo para representarlos por medio de un lenguaje grfico o escrito. Debido a que es un proceso mental es una accin subjetiva y creativa es decir: depende del contexto psicolgico de la persona que la realiza. Trminos de la POO: Constituye un principio de la POO que: Enfatiza en detalles que son significativos y que suprime otros detalles que son por el momento irrelevante. Denota las caractersticas esenciales de un objeto que lo distinguen de todas las otras clases de objetos. 1.2. Importancia de la abstraccin Dato: unidad bsica de la informacin, que por lo general por s solo no dice nada. Informacin: es el conocimiento que puede comunicarse, generalmente es el conjunto de datos pero que tienen relacin y que tienen sentido; La abstraccin: es una tcnica o metodologa que permite disear o modelar Estructuras de Datos, que CONSISTE en representar bajos ciertos lineamientos de formato las caractersticas esenciales de una estructura de datos. Su importancia radica en que la abstraccin es una capacidad para modelar una realidad por medio de las herramientas computacionales.

1.3. Estructuras de Datos Cualquier coleccin o grupo de datos organizados de tal forma que tengan asociados un conjunto de operaciones para poder manipularlos, se dice que conforma una Estructura de Datos. La mayora de lenguajes de programacin de alto nivel disponen de, tipos de datos estructurados o estructuras de datos predefinidos. Ejemplo: Arreglos: que no son ms que un conjunto de datos, todos del mismo tipo, con una organizacin lineal y con mtodos claros de acceso a travs de sus subndices. Las operaciones tradicionales son: comparacin, asignacin, escritura, lectura.

2 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

Tipos de Estructuras

SIMPLES

Hacen referencia a un solo valor a la vez. Ocupan una sola casilla de memoria Pueden ser: Entero, real, lgico carcter (donde: su tamao depende del Lenguaje de Programacin). En el lenguaje Java tenemos:
TIPO Byte Short Int Long Float Double Char Boolean CANTIDAD _ 2 bytes 4 bytes 8 bytes 4 bytes (tipos reales) 8 bytes Sin signo 2 bytes 1 bit

COMPUESTAS

Se caracteriza por el hecho de que con un nombre se hace referencia a un grupo de casillas de memoria es decir se estructura est formada: Por uno o varios datos simples. Por uno o vario datos compuestos. Porque pueden tener algn tipo de comportamiento (mtodos).

ED: Estructura de almacenamiento + Operaciones de manipulacin (mtodos)

Clasificacin de las Estructuras de Datos


ESTATICAS Tienen una cantidad fija de memoria principal Delimitan el espacio que ocupan en memoria en tiempo de compilacin Ejemplo: Arreglos o Arrays, Cadenas // declaracin int [ ] A; // crea un arreglo con 10 nmeros // enteros A = new int [ 10 ] ; DINAMICAS No tienen limitacin en el tamao de memoria principal ocupada El espacio de memoria a ocupar se determina en tiempo de ejecucin Ejemplo: listas, rboles, grafos, etc. public class Nodo{ // Atributos private int dato; private Nodo sig; // Constructor public Nodo (Nodo ns){ sig = sig; } // Mtodos a implementar para la // clase Nodo }

3 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

TDA: Tipo de Dato Abstracto: Es el modelo, junto con varias operaciones definidas sobre el modelo, con lo que se representa a la estructura y el comportamiento del mundo real. El TDA, especifica el Qu? ms no el Cmo?

1.4. Tipo de Dato Abstracto ( T.D.A) TDA es un modelo matemtico de estructuras de datos que especifica los tipos de datos almacenados, las operaciones definidas sobre esos datos y los tipos de los parmetros de esas operaciones. Un TDA define lo que cada operacin debe hacer, ms no como lo debe hacer. En un lenguaje de programacin como Java un TDA puede ser expresado por una interface, que es una simple lista de declaraciones de mtodos. Un TDA es materializado por una estructura de datos concreta, en Java, es modelada por una clase. Una clase define los datos que sern almacenados y las operaciones soportadas por los objetos que son instancia de la clase. Al contrario de la las interfaces, las clases especifican como las operaciones son ejecutadas (Implementacin). La tcnica de la abstraccin de datos establece que al disear una nueva Estructura de Datos pasa a ser un TDA que luego podr ser implementado en cualquier lenguaje de programacin. Especificacin lgica de un TDA Es un documento en el que se plasma la abstraccin realizada al disear una Estructura de Datos y a partir del cual se implementa la Estructura de Datos. En dicho documento se definirn claramente todas las reglas en las que podr usarse el TDA Partes: 1. Elementos que conforman la Estructura de Datos Describe el tipo de los datos individuales que guardara la estructura. Ejemplo: nmeros enteros, nmeros reales, caracteres, fechas, registro con los datos de un empleado. Tipo de organizacin en que se guardara los elementos Lineal: Si hay una relacin de uno a uno entre los elementos. (Arreglos)

2.

Jerrquica: Si hay una relacin de uno a muchos entre los elementos. (Arboles)

4 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

Red: Relacin de muchos a muchos entre los elementos (grafos)

Sin relacin: Si no hay relacin entre los elementos

3.

Dominio de la estructura (opcional) Se describir la capacidad de la estructura de datos en cuanto al rango posible de datos por guardar. Descripcin de las operaciones de la estructura Para cada operacin se debe considerar los siguientes puntos: Nombre de la operacin Descripcin breve de su utilidad Datos de entrada a la operacin Datos que generan como salida la operacin Precondicin: condicin que debe cumplirse ANTES de utilizar la operacin para que se ejecute sin problemas. Postcondicion : condicin en que queda el TDA DESPUES de ejecutar la operacin
Definir claramente la especificacin lgica del TDA, facilita la implementacin y aplicacin de la Estructura de Datos.

4.

Tarea 1: Averigua varios ejemplos de aplicaciones informticas del mundo, real donde se muestra claramente el tipo de organizacin.

1.5. Niveles de abstraccin de datos 1.- Nivel (Lgico o abstracto) Corresponde a la especificacin lgica del TDA. En este nivel se define abstractamente a la Estructura de Datos y las operaciones relacionadas con ella, independientemente del lenguaje de programacin en el que se implemente o utilice la Estructura.

5 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

2.- Nivel (Fsico o de Implementacin) Se decide el lenguaje de Programacin en el que se va a implementar la estructura de datos. As como los tipos de datos ya definidos en el lenguaje de programacin servirn para representar a la estructura. Y luego se implementa cada una de las operaciones diseadas en el TDA 3. Nivel de Aplicacin o de Uso: El programador usar el TDA para resolver determinadas aplicaciones, el uso del TDA se limita a llamar a las operaciones sobre la estructura que se requiera cuidando siempre de cumplir las reglas de cada operacin especificadas en el nivel lgico. Analiza: Identifica los niveles de abstraccin en casos de vida real? Ejemplo: Construir un edificio.. Piensa en otros casos ms, comenta con tus compaeros y con tu profesora !!!

Ventajas de utilizar la Tcnica de Abstraccin de Datos Se tiene una implementacin ms clara, documentable y fcil de darle mantenimiento. Debido a la independencia de datos, se puede crear paquetes como unidades de software reutilizable, con lo que se obtienen Estructuras de Datos genricas. Facilita y hace ms rpido el desarrollo de aplicaciones. Podemos crear unidad de software reutilizables. Es uno de los principales fundamentos de la POO. Ejercicios: En un sistema bancario las cuentas de cheques de los clientes pueden considerarse objetos. Todos ellos pertenecen a una cuenta llamada CUENTA _CHEQUES que definen para cada instancia los siguientes datos: Numero de la cuenta. Nombre del cliente. Sucursal donde se abri la cuenta. Saldo de la cuenta. Y las siguientes Operaciones Abrir cuenta Deposito Retiro Consultar saldo Tarea: Realice la especificacin del TDA CUENTA _CHEQUES. Solucin: Para ello elaboramos la especificacin lgica que contienen los siguientes puntos:

6 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

TDA: CUENTA _CHEQUES. 1.- Elementos que conforman la estructura de datos Nmero de cuenta cadena Nombre del cliente cadena Sucursal donde se abri cadena Saldo de la cuenta real 2.- Tipo de organizacin. El tipo de organizacin es lineal entre los nmeros de cuentas 3.- Dominio Existe entre 0 y 10000 cuentas, el dominio ser todos aquello nmeros que se ubiquen dentro del rango establecido. 4.- Descripcin de las operaciones ABRIR_CUENTA: Utilidad: Esta operacin se ejecutar al crear un objeto de la clase CUENTA_CHEQUES, e implica solicitar por teclado los datos correspondientes para guardarlos en los atributos del objeto y colocar el valor de cero al saldo inicial. Datos de entrada: Nombre del cliente, Nombre de la sucursal, (Saldo inicial de la cuenta ser cero) Datos de salida: Nmero de cuenta Precondiciones: Ninguna Postcondiciones: Los datos ingresados sern guardados en los atributos correspondientes del objeto. DEPOSITAR Utilidad: Agrega la cantidad especificada al saldo de la cuenta. Datos de Entrada: Monto a depositar Datos de Salida: Saldo disponible aumentado Precondiciones: Nmero de la cuenta exista Que la cantidad a depositar sea mayor a cero Postcondiciones: Saldo de la cuenta agregado la cantidad especificada RETIRAR Utilidad: Quita al saldo de la cuenta la cantidad especificada, validando que sea posible retirar esa cantidad. Datos de Entrada: Monto a retirar Datos de Salida: saldo disponible disminuido Precondiciones: Que el nmero de cuenta exista Que el saldo disponible sea mayor que la cantidad especificado para el retiro. Postcondiciones: saldo disponible disminuido en la cantidad especificada CONSULTAR_SALDO Utilidad: Mostrar en pantalla el saldo de la cuenta correspondiente Datos de Entrada: Nmero de cuenta

7 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

Datos de Salida: Saldo disponible Precondiciones: Exista el nmero de cuenta Postcondiciones: Ninguna

Tarea 2: Realizar el TDA, de la estructura de Fecha.

1.6. Representacin de una estructura de datos Puede entenderse como el punto de conexin entre la especificacin lgica de una TDA y su implementacin en un lenguaje de programacin particular. Dentro del proceso de abstraccin de datos la representacin de una estructura corresponde al inicio del segundo nivel de abstraccin es decir el nivel fsico. Constituye un esquema de cmo se almacenarn los elementos de la Estructura de Datos, en la memoria de tal forma que se logre su ptimo aprovechamiento. Tipos de representaciones para una Estructura de Datos Independientemente de las facilidades de implementacin que ofrezcan los lenguajes de programacin, una Estructura de Datos puede representarse de dos formas:
Almacenamiento contiguo

1. Por posiciones Tipos 2. Por ligas

Almacenamiento disperso

1. Representacin de una estructura de datos por posiciones El lugar fsico donde se almacena un elemento determina automticamente su posicin relativa en la estructura de datos. Se podra considerar como un espacio de almacenamiento contguo donde:

Cada lugar sirve para almacenar un elemento. Un elemento esta en un lugar K, por lo tanto

Tendr la ksima posicin dentro de la estructura

El elemento K+1 estar despus de K por lo tanto se almacenar en el lugar k+1 del espacio de almacenamiento.

8 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

1 2 K K+1 N

Elemento 1 Elemento 2 Elemento k Elemento k+1 Elemento N

Existe una relacin lineal Elemento 1 pos 1 Elemento 2 pos 2 . Elemento N pos N

Herramientas en los lenguajes de programacin para desarrollar una representacin por posiciones Todos los lenguajes de programacin proveen al programador de herramientas tiles para representar Estructuras de Datos en forma contigua, ms conocidas como estructuras de datos implcitas del lenguaje. 1. Arreglos de elementos uniformes.- Solo almacenan un conjunto de elementos de un mismo tipo simple enteros, reales, cadenas o tipos compuestos registros con elementos de diferentes tipos 2. Registros de elementos de diversos tipos.- Permiten definir estructuras que contienen valores de diferentes tipos, almacenados como si fuera unidad. 3.- Archivos Secuenciales.- el almacenamiento es contiguo, son similares a los arreglos, permiten almacenar un conjunto de elementos aunque lo hace en la memoria secundaria. Ventajas Fcil implementacin. Rapidez de recorrido, debido a que la direccin de cada elemento est implcita en su posicin fsica. Desventajas Al realizar manipulaciones de los elementos o Al agregar un nuevo elemento en algn lugar que no sea el ltimo, se tiene que desplazar los elementos hacia abajo que estn despus de la posicin de insercin deseada logrando que se genere un espacio para poder agregar un nuevo elemento. o Al borrar un elemento que no sea el ltimo deja un espacio no permitido entre los elementos, para lo cual se tiene que desplazar una posicin hacia arriba los elementos, que estn despus del elemento borrado. 2. Representacin de una estructura de datos por ligas En este tipo de representacin la ubicacin fsica de un elemento no determina la posicin relativa que tiene dentro de la Estructura de Datos.

9 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

El almacenamiento se realiza en forma dispersa: dos elementos contiguos en la Estructura de Datos no necesariamente deben estar almacenados fsicamente en posiciones contiguas dentro del espacio de almacenamiento.

1 2

Elemento k

Dir k+1 Almacenamiento disperso Lista Uno: Elemento k , el que sigue est en la direccin Dir k+1, que es el Elemento 1, el que sigue est en la Dir 2 que es nula. Lista Dos. Elemento k+1, el que sigue tiene direccin Nula Dir k+2

K K+1

Elemento 1

Dir 2

Elemento k+1

Dir k+2

En necesario que cada elemento almacene la direccin fsica donde se ubica el elemento que le sigue en el Estructura de tal forma que puedan mantener una relacin en donde est cada uno de los elementos. Caractersticas 1.- La posicin fsica del elemento no determina la posicin relativa dentro de la Estructura de datos. 2.- El almacenamiento se realiza en forma dispersa. 3.- Es necesario que cada elemento almacena la direccin fsica del siguiente elemento. 4.- Cada elemento debe contener 2 o ms campos (dato y direccin). Ventajas 1.- La representacin no es exclusiva debido a que mantiene una organizacin lineal 2.- Posibilidad de agregar y eliminar elementos de la estructura, sin tener que desplazar los elementos que ya estaban en ella. 3.- Permite un uso ms eficiente del espacio de almacenamiento ya que puede crecer o decrecer en tiempo de ejecucin, segn requiera el usuario. Desventajas 1.- Cada elemento deber recordar donde est alguno de los elementos, cada espacio es un elemento compuesto por (dato y la direccin del siguiente elemento). 2.- Las operaciones requieren mayor tiempo de procesamiento, debido a que el acceso no es directo, se requiere realizar un recorrido hasta encontrar el elemento deseado.

10 Curso de Estructuras de Datos Orientada a Objetos Ing. Daysi M. Erreyes P.

Herramientas en los Lenguajes de Programacin para desarrollar una Representacin por Ligas En la mayora no existen herramientas predefinidas, por lo tanto es el programador implementa las estructuras. Se recomienda el uso de apuntadores, un apuntador se define como un tipo capaz de almacenar una direccin de memoria, se considera como una referencia indirecta a un elemento.

S-ar putea să vă placă și