Uploaded by Jordy Avila

1.2.Tipos de Datos y Estructura de Datos

advertisement
ESTRUCTURAS DE DATOS
SOFTWARE
ESTRUCTURA DE
DATOS
Unidad No 1: Introducción a las estructuras de datos (TDA)
con objetos, conceptos y definiciones.
Unidad No1 Semana No1: Jueves 06 de Mayo de 2023
USO E IMPLEMENTACIÓN DE TIPOS DE DATOS ABSTRACTOS
1.
2.
3.
4.
5.
Tipos de Datos
Tipos de datos primitivos
Tipos de datos compuestos
La necesidad de las estructuras de datos
Etapas en la selección de una estructura de datos
TIPOS DE DATOS
• Todos los lenguajes de programación lo proporcionan.
• Dos definiciones son:
• Definición 1: Un tipo de dato es un conjunto de valores y operaciones asociadas a
esos valores.
• Definición 2: Un tipo de dato consta de dos partes: un conjunto de datos y las
operaciones que se pueden realizar sobre esos datos.
• Existen:
• Tipo de datos primitivos,
• Tipos compuestos y agregados.
TIPOS DE DATOS PRIMITIVOS
• Los tipos numéricos son, probablemente, los tipos primitivos más
fáciles de entender, debido a que las personas estamos
familiarizadas con los números.
TIPOS DE DATOS COMPUESTOS AGREGADOS
• Los datos compuestos son el tipo opuesto a los tipos de datos atómicos. Los
datos compuestos se pueden romper en subcampos que tengan significado.
• Un ejemplo sencillo es el número de cédula 09 le pertenece a la provincia y el
resto le pertenece a una secuencia.
• En algunas ocasiones los datos compuestos se conocen también como datos o
tipos agregados.
• Los tipos agregados son tipos de datos cuyos valores constan de colecciones de
elementos de datos.
• Un tipo agregado se compone de tipos de datos previamente definitivos.
• Existen tres tipos agregados básicos: arrays (arreglos), secuencias y registros.
TIPOS DE DATOS COMPUESTOS AGREGADOS
• Un array o arreglo es, normalmente, una colección de datos de tamaño o
longitud fija, cada uno de cuyos datos es accesible en tiempo de ejecución
mediante la evaluación de las expresiones que representan a los subíndices o
índices correspondientes. Todos los elementos de un array deben ser del
mismo tipo.
• Una secuencia o cadena es, en esencia, un array cuyo tamaño puede variar
en tiempo de ejecución. Por consiguiente, las secuencias son similares a
arrays dinámicos o flexibles.
ARREGLOS
CONTENIDO
1. Qué son las estructuras de datos
2. Ejemplos de estructuras de datos
3. Lenguajes que soportan las estructuras
de datos
QUÉ SON LAS ESTRUCTURAS DE DATOS
En ciencias de la computación, una estructura de datos es una forma particular de
organizar datos en una computadora para que puedan ser utilizados de manera
eficiente.
Diferentes tipos de estructuras de datos son adecuados para diferentes tipos de aplicaciones,
y algunos son altamente especializados para tareas específicas.
Las estructuras de datos son un medio para manejar grandes cantidades de datos de manera
eficiente para usos tales como grandes bases de datos y servicios de indización de Internet.
Por lo general, las estructuras de datos eficientes son clave para diseñar algoritmos eficientes.
Las estructuras de datos se basan generalmente en la capacidad de un ordenador para
recuperar y almacenar datos en cualquier lugar de su memoria.
QUÉ SON LAS ESTRUCTURAS DE DATOS
QUÉ NOS PERMITEN LAS ESTRUCTURAS DE DATOS
QUÉ OPERACIONES PODEMOS EJECUTAR CON LAS ESTRUCTURAS DE DATOS
QUÉ LAS HACE TAN IMPORTANTES
TIPOS DE ESTRUCTURAS
TIPOS DE ESTRUCTURAS
CASOS
LENGUAJES QUE SOPORTAN LAS ESTRUCTURAS DE DATOS
• La mayoría de los lenguajes ensambladores, carecen de soporte de estructuras de datos.
En cambio, muchos lenguajes de alto nivel, tienen algún tipo de soporte incorporado
para ciertas estructuras de datos, tales como los registros y arreglos.
• Por ejemplo, los lenguajes C y Pascal soportan estructuras y registros, respectivamente,
además de arreglos y matrices multidimensionales. La mayoría de los lenguajes de
programación disponen de algún tipo de biblioteca o mecanismo que el uso de
estructuras de datos en los programas. Los lenguajes modernos por lo general vienen
con bibliotecas estándar que implementan las estructuras de datos más comunes.
Ejemplos de ello son la biblioteca Standard Template Library de C++.
LA ELECCIÓN DE LAS ESTRUCTURA DE DATOS
• La elección de la estructura de datos adecuada redundará en una mayor
eficiencia del programa y, sobre todo, en una mejor resolución del problema
en cuestión. Una elección inadecuada de la estructura de datos puede
conducir a programas lentos, largos y poco eficientes.
• Una solución se denomina eficiente si resuelve el problema dentro de las
restricciones de recursos requeridas. Restricciones de recursos pueden ser el
espacio total disponible para almacenar los datos (considerando la memoria
principal independiente de las restricciones de espacio de discos, fijos, CD,
DVD, flash…) o el tiempo permitido para ejecutar cada subtarea.
ETAPAS EN LA SELECCIÓN DE UNA ESTRUCTURA DE DATOS
• Los pasos a seguir para seleccionar una estructura de datos que resuelva un problema
son:
1. Analizar el problema para determinar las restricciones de recursos que debe
cumplir cada posible solución.
2. Determinar las operaciones básicas que se deben soportar y cuantificar las
restricciones de recursos para cada una. Ejemplos de operaciones básicas son la
inserción de un dato en la estructura de datos, suprimir un dato de la estructura o
encontrar un dato determinado en dicha estructura.
3. Seleccionar la estructura de datos que cumple mejor los requisitos o
requerimientos.
ETAPAS EN LA SELECCIÓN DE UNA ESTRUCTURA DE DATOS
• Este método de tres etapas para la selección de una estructura de datos es
una aproximación centrada en los datos.
• Primero se diseñan los datos y las operaciones que se realizan sobre ellos,
• A continuación viene la representación de esos datos y,
• Por último, viene la implementación de esa representación.
• Las restricciones de recursos sobre ciertas operaciones clave, como
búsqueda, inserción de registros de datos y eliminación de registros de
datos, normalmente conducen el proceso de selección de las estructuras de
datos.
ESTRUCTURAS DE DATOS ABSTRACTOS
TIPOS DE DATOS ABSTRACTOS
Un Tipo de dato abstracto (TDA) es un conjunto de datos u objetos al cual se le
asocian operaciones.
El TDA provee de una interfaz con la cual es posible realizar las operaciones permitidas,
abstrayéndose de la manera en como estén implementadas dichas operaciones. Esto
quiere decir que un mismo TDA puede ser implementado utilizando distintas estructuras
de datos y proveer la misma funcionalidad.
El paradigma de orientación a objetos permite el encapsulamiento de los datos y las
operaciones mediante la definición de clases e interfaces, lo cual permite ocultar la
manera en cómo ha sido implementado el TDA y solo permite el acceso a los datos a
través de las operaciones provistas por la interfaz.
En este capítulo se estudiarán TDA básicos como lo son las listas, pilas y colas, y se mostrarán algunos
usos prácticos de estos TDA.
EJEMPLOS
Existen numerosos tipos de estructuras de datos, generalmente construidas sobre otras
más simples:
1. Un vector es una serie de elementos en un orden específico, por
lo general todos del mismo tipo (si bien los elementos pueden
ser de casi cualquier tipo). Se accede a los elementos utilizando
un entero como índice para especificar el elemento que se
requiere. Las implementaciones típicas asignan palabras de
memoria contiguas a los elementos de los arreglos (aunque no
siempre es el caso). Los arreglos pueden cambiar de tamaño o
tener una longitud fija.
EJEMPLOS
2. Pilas y Colas: Implementación de los algoritmos FIFO y LIFO.
3. Un grafo es una estructura de datos conectada compuesta por nodos. Cada
nodo contiene un valor y una o más referencias a otros nodos. Los grafos
pueden utilizarse para representar redes, dado que los nodos pueden
referenciarse entre ellos. Las conexiones entre nodos pueden tener dirección,
es decir un nodo de partida y uno de llegada.
4. Un árbol es un caso particular de grafo dirigido en el que no se admiten ciclos
y existe un camino desde un nodo llamado raíz hasta cada uno de los otros
nodos. Una colección de árboles es llamada un bosque.
ESTRUCTURAS DE DATOS
ARREGLOS
CONTENIDO
1.
2.
3.
4.
5.
Arreglos
Características
Ventajas
Operaciones
Punteros
CONCEPTO
RECORDANDO
CARACTERÍSTICAS
RECORDANDO
VENTAJAS DEL USO DE ARREGLOS
RECORDANDO
EJEMPLO
RECORDANDO
ARREGLOS UNIDIMENSIONALES: VECTORES - OPERACIONES
RECORDANDO
ARREGLOS UNIDIMENSIONALES: VECTORES - OPERACIONES
RECORDANDO
ARREGLOS UNIDIMENSIONALES: VECTORES - OPERACIONES
RECORDANDO
ARREGLOS UNIDIMENSIONALES: VECTORES - OPERACIONES
RECORDANDO
ARREGLOS UNIDIMENSIONALES: VECTORES - OPERACIONES
RECORDANDO
ARREGLOS UNIDIMENSIONALES: VECTORES - OPERACIONES
RECORDANDO
ARREGLOS BIDIMENSIONALES: MATRICES
RECORDANDO
ARREGLOS BIDIMENSIONALES: MATRICES
RECORDANDO
ARREGLOS BIDIMENSIONALES: MATRICES
RECORDANDO
ARREGLOS BIDIMENSIONALES: MATRICES
RECORDANDO
ARREGLOS BIDIMENSIONALES: MATRICES
RECORDANDO
ARREGLOS BIDIMENSIONALES: MATRICES
RECORDANDO
Download