Sesión 2:
Introducción a las
Estructuras de Datos
Dra. Ing. Jessie Leila Bravo Jaico
Email: [email protected]
Curso: Estructura de Datos y algoritmos
www.usat.edu.pe
www.usat.edu.pe
Objetivos
Comprender que son las
estructuras de datos y como se
clasifican.
Definir la importancia de las
estructuras de datos en el
desarrollo de aplicaciones en las
ciencias de la computación.
Comprender que es un Tipo de
datos Abstracto (TDA) y su uso.
www.usat.edu.pe
Lista de contenidos
• Introducción
• Definición de Estructura de datos
• Importancia
• Características
• Clasificación
• Tipo de Dato Abstracto
• Ventajas y desventajas
• Generalidades
• Tarea
• Conclusiones
• Bibliografía
www.usat.edu.pe
Introducción
• En la programación existen problemas en los cuales
se requiere operar con una colección de datos.
• Por ejemplo, si requerimos almacenar información de
los empleados de una empresa para luego manipular
esta información, si requerimos simular los clientes
que son atendidos en un supermercado, etc.
• En estos casos necesitamos agrupar estos objetos
para luego trabajar con ellos y luego poder obtener
de éstos información valiosa para una organización.
www.usat.edu.pe
Introducción
• La información que se procesa en la computadora es un
conjunto de datos, que pueden ser simples o
estructurados.
• Los datos simples son aquellos que ocupan sólo un
localidad de memoria, mientras que los estructurados
son un conjunto de casillas de memoria a las cuales
hacemos referencia mediante un identificador único.
• Debido a que por lo general tenemos que tratar con
conjuntos de datos y no con datos simples (enteros,
reales, booleanos, etc.) que por sí solos no nos dicen
nada, ni nos sirven de mucho, es necesario tratar con
estructuras de datos adecuadas a cada necesidad.
www.usat.edu.pe
Definición
• Una estructura de datos es una manera de disponer
de una colección de datos, así como, de la forma en
cómo van a ser manipulados, esto es, saber como se
agregarán nuevos datos, cómo se accederán a estos
datos, cómo se eliminan datos, etc.
www.usat.edu.pe
Importancia
• ¿Por qué son útiles las estructuras de datos?
• Vamos a ver un video que nos ayude a analizar este
tema.
• https://www.youtube.com/watch?v=gLMWA950hW8
7 www.usat.edu.pe
Características
Las características de las estructuras de datos son:
• Las estructuras de datos son independientes del
lenguaje de programación.
• Pueden descomponerse en los elementos que la
forman.
• La manera en que se colocan los elementos dentro
de la estructura afectará la forma en que se realicen
los accesos a cada elemento.
• La colocación de los elementos y la manera en que se
accede a ellos puede ser encapsulada.
www.usat.edu.pe
Clasificación
www.usat.edu.pe
Clasificación
• Una estructura de datos es dinámica, cuando durante
la ejecución del programa ésta puede ir creciendo, es
decir, ocupando más memoria.
• Por el contrario una estructura de datos que siempre
ocupa el mismo espacio se dice que es estática.
• En esta curso solo estudiaremos las estructuras de
datos internas, describiremos en qué consisten,
cómo operan y aplicaciones.
• Una vez revisados los conceptos de cada estructura
las implementaremos en java.
www.usat.edu.pe
Tipo de Dato Abstracto (TDA)
• Las estructuras mostradas en el gráfico, excepto los
arreglos, pueden ser pensados como tipos de datos
abstractos (TDA).
• Un TDA, de forma general, es una forma de ver una
estructura de datos: enfocándose en lo que esta hace
e ignorando como hace su trabajo, es decir, el TDA
debería cumplir con ciertas propiedades, pero la
manera como estaría implementado puede variar,
aún empleando el mismo lenguaje.
• Por ejemplo, el TDA pila puede ser implementado con
un arreglo o bien con una lista enlazada.
www.usat.edu.pe
Ventajas y Desventajas
Estructura Ventajas Desventajas
Arreglo Inserción rápida. Búsqueda y borrado
Acceso muy rápido si se Lento.
conoce el índice. Tamaño bajo
Pila Proporciona acceso Acceso lento a otros elementos.
último en entrar, primero en salir.
Cola Proporciona primero Acceso lento a otros elementos.
en entrar, primero en salir.
Lista Enlazada Inserción y borrado rápido. Búsqueda lenta.
Lista Dinámica Implementación sencilla. Inserción y borrado lento.
Búsquedas rápidas.
Árbol binario Búsqueda, inserción y borrado rápido si el Complejo.
árbol permanece balanceado.
Grafo Modela situaciones Algunos algoritmos son lentos y
del mundo real. complejos.
www.usat.edu.pe
Generalidades
• Varios de los algoritmos que serán tratados en el curso se aplicarán
directamente a estructuras de datos específicas. Para la mayoría de
las estructuras de datos, se requiere que hagan las siguientes tareas:
1. Insertar un nuevo dato.
2. Buscar un elemento indicado.
3. Borrar un elemento indicado.
• También se necesitará saber como iterar a través de todos los
elementos en la estructura de datos, visitando cada uno en su turno
ya sea para mostrarlo o para realizar alguna acción en éste.
• Otro algoritmo importante es el ordenamiento. Hay varias formas
para ordenar los datos, desde ideas simples hasta otras que
permiten realizarlo de manera rápida.
• El concepto de recurrencia o recursividad es importante en el
diseño de ciertos algoritmos.
• La recurrencia involucra que un método se llame a si mismo
www.usat.edu.pe
Tarea
• Investigue ejemplos de cómo se aplican las diferentes
estructuras de datos en la actualidad.
• Además de las aplicaciones actuales de qué otra
manera crees se podría aplicar?
14 www.usat.edu.pe
Conclusiones
• El estudio de las Estructuras de Datos es sumamente
importante, debido a la necesidad de manipular la
información de manera adecuada y oportuna.
• Las estructuras de datos nos permiten elaborar algoritmos
con un tiempo de ejecución óptimo.
• Es por ello de la importancia de aprender acerca de las
Estructuras de Datos, y de cómo manipular la información a
través de ordenamientos, búsquedas, organización, métodos
de acceso, etc.
www.usat.edu.pe
Referencias
• Aho Alfred V., Hopcroft John E. y Ullman Jeffrey D. 1988.
Estructuras de datos y algoritmos. Addison-Wesley
Iberoamericana, 1988 (005.73/A38)
• Allen Weiss, Mark. 2000. Estructuras de datos en Java.
Compatible con Java 2 Addison-Wesley Iberoamericana.
(005.73/A47)
• Flórez Rueda, Roberto. 2005. Algoritmos, estructuras de datos
y programación orientada a objetos. ECOE Ediciones.
(005.73/F64)
• Joyanes Aguilar, Luis. 2003. Fundamentos de programación:
algoritmos, estructura de datos y objetos. McGraw-Hill
Interamericana (05.73/J79 2003)
www.usat.edu.pe
Dra. Ing. Jessie Leila Bravo Jaico
Email: [email protected]
http://www.facebook.com/usat.peru
https://twitter.com/usatenlinea
https://www.youtube.com/user/tvusat
https://plus.google.com/+usateduperu
www.usat.edu.pe