SlideShare a Scribd company logo
1 of 39
ESTRUCTURA DE DATOS
ALUMNOS :
JOAQUIN LOZANO
NUÑEZ
TEMAS:
Introducción a las
estructuras de datos
1.1 Clasificación de las
estructuras de datos.
1.2 Tipos de datos
abstractos (TDA).
1.3 Ejemplos de TDA´S
INTRODUCCIÓN A LAS ESTRUCTURAS DE
DATOS
Las estructuras de datos son formas de organizar y almacenar datos de manera
eficiente en un programa de computadora. Son esenciales para resolver
problemas y optimizar el uso de recursos como tiempo y espacio en memoria.
Existen diversas estructuras de datos, cada una con sus propias características y
ventajas. Algunas de las estructuras de datos más comunes incluyen arrays,
listas enlazadas, pilas, colas, árboles y grafos. Cada estructura de datos tiene
sus propias operaciones y métodos para insertar, eliminar y acceder a los datos
almacenados. La elección de la estructura de datos adecuada depende del
problema que se esté resolviendo y de los requisitos de eficiencia.
1.1 Clasificación de las Estructuras de datos
Las estructuras de datos son
formas de organizar y almacenar
datos en la memoria de una
computadora para que puedan ser
accedidos y gestionados de
manera eficiente. Estas estructuras
se pueden clasificar de varias
maneras, dependiendo de
diferentes criterios.
Estructuras primitivas y simples:
Estructuras primitivas:
• Son primitivas aquellas que no están
compuestas por otras estructuras de
datos por ejemplo:
• Enteros
• Booleanos
• Caracteres
• Otras estructuras de datos se
pueden construir de una o mas
primitivas.
Estructuras simples:
Las estructuras de datos simples que
consideramos se construyen a partir
de estructuras primitivas y son:
• Cadenas
• Arreglos
• Registros
A estas estructuras de datos las
respaldan muchos lenguajes de
programación.
Estructuras lineales y no lineales:
Las estructuras de datos simples se pueden combinar de varias maneras para formar estructuras
mas complejas.
Las estructuras de datos
lineales
incluyen:
• Pilas
• Colas
• listas ligadas lineales
Las estructuras de datos
no lineales
incluyen:
• Grafos
• Arboles.
1.2Tipos de datos abstractos TDA).
Tipo Abstracto de Datos (TAD) es un concepto que define un conjunto
de valores y las operaciones que se pueden realizar sobre esos
valores sin exponer los detalles internos de cómo se implementan
esas operaciones. Esto ayuda a encapsular la complejidad y
proporcionar una interfaz clara para trabajar con los datos. Aquí hay
algunos ejemplos de tipos abstractos de datos.
DATOS ABSTRACTOS
1. LISTAS ENLAZADAS : Implementación con un arreglo dinámico: Un arreglo que puede crecer o
disminuir automáticamente según la cantidad de elementos. Operaciones como `agregar`, `eliminar`
y `obtener` elementos por índice.
2. PILAS: Implementación con arreglo: es una lista ordenada o estructura de datos que permite
almacenar y recuperar datos de acceso a sus elementos de tipo LIFO (del inglés Last In, First Out,
«último en entrar, primero en salir»)
3. COLAS: Implementación con arreglo circular: es un grupo ordenado de elementos del mismo tipo,
en la cual dichos elementos se añaden por un extremo (Final) y se quitan por el otro extremo
(Frente). FIFO (First In First Out), es decir, que el primer elemento en entrar es el primer elemento
en salir.
4. ÁRBOLES: Es un tipo abstracto de datos (TAD) ampliamente usado que imita la estructura
jerárquica de un árbol, con un valor en la raíz y subárboles con un nodo padre, representado como
un conjunto de nodos enlazados.
5. GRAFOS: un grafo es una estructura de datos no lineal que consiste en un conjunto de nodos y
arcos. Los nodos representan los elementos o entidades, mientras que los arcos representan las
relaciones o conexiones entre los elementos.
6. TABLAS DE HASH: Las tablas hash son estructuras de datos que se utilizan para almacenar un
número elevado de datos sobre los que se necesitan operaciones de búsqueda e inserción muy
eficientes. Esta asocia llaves o claves con valores
1.3 Ejemplos de TDA’S
Introducción
Integrantes:
Melissa Jimenez Gallardo - 21321069
Pedro Silva Muñoz - 21321213
A la estructura de datos
Lunes, 18 de septiembre de
2023
Estructura de
datos Equipo 3
Subtemas.
1.4.- Manejo de memoria.
1.4.1.- Memoria estática.
1.4.2.- Memoria dinámica.
1.5.- Análisis de Algoritmos.
1.5.1.- Complejidad en el tiempo.
1.5.2.- Complejidad en el espacio.
1.5.3.- Eficiencia de los
Algoritmos
1.4.- Manejo de memoria
Todas las variables, arreglos y objetos en general tienen una
duración determinada en el transcurso de un programa. Son
creados y destruidos para su uso y después para que la
memoria sea liberada para que la utilicen otros objetos.
En C# existen tres formas de usar la memoria para
almacenar valores, son:
1.4.1. - Memoria Estática
La memoria estática es la que
se reserva en el momento de
la compilación antes de
comenzar a ejecutarse el
programa. Los objetos son
creados en ese momento y
destruidos al finalizar el
programa. Mantienen la misma
localización en memoria
durante todo el transcurso del
programa.
Los objetos administrados
de ese modo son:
- Variables static
- Variables globales
- Miembros static de clases
- Literales cualquier tipo
Arreglos estáticos: Un arreglo estático es una
estructura de datos en la que se reserva una cantidad
fija de memoria para almacenar elementos del mismo
tipo. La cantidad de memoria se asigna en tiempo de
compilación y no puede cambiarse durante la ejecución
del programa. Por ejemplo, en C o C++, puedes
declarar un arreglo estático de enteros como:
Int miArreglo[10];
En este caso, se asigna estáticamente memoria para
10 enteros, y esta asignación no cambia mientras el
programa se ejecuta.
EJEMPLO :
Variables estáticas: En muchos lenguajes de programación,
puedes declarar variables estáticas que mantienen su valor
entre llamadas a una función. Estas variables se almacenan
en una ubicación de memoria estática y conservan su valor
entre llamadas. Por ejemplo, en C, puedes declarar una
variable estática de la siguiente manera:
Static int contador = 0;
La variable contador conservará su valor entre llamadas a la
función que la contiene.
1.4.2- Memoria dinámica.
La memoria dinámica es un espacio de
almacenamiento que se solicita en tiempo de
ejecución. De esa manera, a medida que el
proceso va necesitando espacio para más líneas,
va solicitando más memoria al sistema operativo
para guardarlas.
El medio para manejar la memoria que otorga el
sistema operativo, es el puntero, puesto que
no podemos saber en tiempo de compilación
dónde nos dará huecos el sistema operativo
(en la memoria de nuestro PC).
VENTAJAS:
1.-Es posible disponer de un espacio de memoria
arbitrario que dependa de información dinámica
(disponible sólo en ejecución): Toda esa memoria que
maneja es implementada por el programador cuando
fuese necesario.
2.-Otra ventaja de la memoria dinámica es que se puede
ir incrementando durante la ejecución del programa.
Esto permite, por ejemplo, trabajar con arreglos
dinámicos.
3.-Es memoria que se reserva en tiempo de ejecución.
Su tamaño puede variar durante la ejecución del
programa y puede ser liberado mediante la función free.
DESVENTAJAS:
1.-Es difícil de implementar en el desarrollo de un
programa o aplicación.
2.-Es difícil implementar estructuras de datos
complejas como son los tipos recursivos (árboles,
grafos, etc.).Por ello necesitamos una forma para
solicitar y liberar memoria para nuevas variables que
puedan ser necesarias durante la ejecución de
nuestros programas: Heap.
3.-Una desventaja de la memoria dinámica es que es
más difícil de manejar.
4.-La memoria dinámica puede afectar el rendimiento.
Puesto que con la memoria estática el tamaño de las
variables se conoce en tiempo de compilación, esta
información está incluida en el código objeto generado.
Cuando se reserva memoria de manera dinámica,
5.-Se tienen que llevar a cabo varias tareas, como buscar
un bloque de memoria libre y almacenar la posición y
tamaño de la memoria asignada, de manera que pueda
ser liberada más adelante. Todo esto representa una
carga adicional, aunque esto depende de la
implementación y hay técnicas para reducir su impacto.
1.5.- Análisis de
algoritmos
Son profesionales que se dedican a analizar y
optimizar algoritmos utilizados en el
procesamiento de datos. Su trabajo implica
comprender cómo se almacenan y organizan los
datos en diferentes estructuras, como listas,
árboles, grafos, matrices, entre otros, y evaluar la
eficiencia de los algoritmos que operan sobre
estas estructuras. Estos analistas se aseguran de
que los algoritmos sean eficientes en términos de
tiempo y espacio, identificando y resolviendo
cuellos de botella en el procesamiento de datos.
También pueden estar involucrados en la
selección de la estructura de datos adecuada
para una tarea específica y en la implementación
de algoritmos optimizados.
1.5.1- Complejidad en el tiempo
Se refiere a la cantidad de tiempo que toma realizar operaciones
específicas en esa estructura de datos en función del tamaño de
los datos o elementos involucrados. Esta medida es fundamental
para evaluar la eficiencia de un algoritmo o estructura de datos en
términos de velocidad de ejecución. Por lo general, se expresan
las complejidades en el tiempo en notación big O (O()), que
describe el límite superior asintótico de la cantidad de operaciones
necesarias en función del tamaño de entrada. Algunas de las
complejidades de tiempo comunes para operaciones en
estructuras de datos incluyen:
Búsqueda: Representada como O(log n) para estructuras de datos
como árboles binarios de búsqueda y O(1) para tablas de
dispersión (hash tables).
Inserción: La complejidad varía según la estructura de datos. En una
lista enlazada, por ejemplo, puede ser O(1) para la inserción al
principio y O(n) para la inserción en medio.
Eliminación: Al igual que la inserción, la complejidad depende de la
estructura de datos y la posición del elemento a eliminar.
Recorrido (traversal): Por lo general, O(n) ya que suele ser necesario
visitar cada elemento de la estructura.
Ordenamiento: La complejidad depende del algoritmo de
ordenamiento utilizado. Por ejemplo, el ordenamiento por burbuja
es O(n^2), mientras que el ordenamiento rápido (quicksort) es O(n
log n).
1.5.2.- Complejidad en el espacio.
La complejidad en el espacio, también conocida
como uso de memoria, es un concepto
importante en la computación y se refiere a
cuánta memoria se necesita para ejecutar un
algoritmo o almacenar datos. La elección de la
estructura de datos adecuada puede influir
significativamente en la complejidad en el
espacio de un programa. Algunas estructuras de
datos comunes y sus implicaciones en la
complejidad en el espacio incluyen:
1. Arreglos: Los arreglos tienen una complejidad
en el espacio fija, ya que ocupan una cantidad
de memoria predefinida. Sin embargo, su
tamaño debe ser conocido de antemano, lo que
puede ser una limitación.
2. Listas enlazadas: Las listas enlazadas pueden
usar memoria de manera más eficiente que los
arreglos en algunos casos, ya que los nodos
solo ocupan la memoria necesaria para
almacenar su valor y una referencia al siguiente
nodo. Sin embargo, requieren espacio adicional
para las referencias.
Árboles y grafos: Estructuras de datos como árboles y
grafos pueden ocupar más memoria que las listas
enlazadas o los arreglos debido a las múltiples
conexiones entre nodos. La complejidad en el
espacio depende de la profundidad y el grado de
ramificación de la estructura.
Tablas de dispersión (hash tables): Las tablas de
dispersión pueden ocupar una cantidad variable de
memoria, dependiendo de la cantidad de elementos
que se almacenan y la eficiencia del factor de carga.
Pueden ser muy eficientes en términos de espacio
si se gestionan correctamente.
1.5.3.- Eficiencia de los algoritmos.
Un algoritmo será más eficiente cuanto menos
recursos computacionales consuma: tiempo y
espacio de memoria requerido para su
ejecución.
La eficiencia de un algoritmo se cuantifica en
términos de su complejidad temporal (tiempo de
cómputo del programa) y su complejidad
espacial (memoria que utiliza el programa
durante su ejecución).
• La selección de un algoritmo es un proceso en el que se
deben tener en cuenta muchos factores, entre los cuales
podemos destacar los siguientes:
• La complejidad en tiempo del algoritmo. Es una primera
medida de la calidad de una rutina y establece su
comportamiento cuando el número de datos a procesar es
grande.
• La complejidad en espacio del algoritmo. Sólo cuando esta
complejidad resulta razonable es posible utilizar este
algoritmo con seguridad. Si las necesidades de memoria
del algoritmo crecen considerablemente con el tamaño del
problema el rango de utilidad del algoritmo es baja y se
debe descartar.
• La dificultad de implementar el algoritmo . En
algunos casos el algoritmo óptimo puede resultar
tan difícil de implementar que no se justifique
desarrollarlo para la aplicación que se le va a
dar.
• El tamaño del problema que se va a resolver. Un
algoritmo para un proceso tamaño pequeño no
justifica la realización de un análisis, ya que da lo
mismo una implementación que otra.

More Related Content

Similar to equipo 3 clasificación de estructura(2.pptx

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_uexvictoruex
 
Resumen Tema 4
Resumen Tema 4 Resumen Tema 4
Resumen Tema 4 DarthJosua
 
Primera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_a
Primera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_aPrimera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_a
Primera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_aJuanita Qontreras
 
1.- Introducción a la estructura de datos.pptx
1.- Introducción a la estructura de datos.pptx1.- Introducción a la estructura de datos.pptx
1.- Introducción a la estructura de datos.pptxAntonio Espinosa
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorJomicast
 
GUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docxGUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docxleotri2
 

Similar to equipo 3 clasificación de estructura(2.pptx (20)

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
 
Resumen Tema 4
Resumen Tema 4 Resumen Tema 4
Resumen Tema 4
 
Base de datos
Base de datosBase de datos
Base de datos
 
Primera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_a
Primera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_aPrimera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_a
Primera unidad de_estructura_de_datos_juana_contreras_pelaez_isc_3_semestre_a
 
Base de datos
Base de datosBase de datos
Base de datos
 
1.- Introducción a la estructura de datos.pptx
1.- Introducción a la estructura de datos.pptx1.- Introducción a la estructura de datos.pptx
1.- Introducción a la estructura de datos.pptx
 
Estructura de datos pdf
Estructura de datos pdfEstructura de datos pdf
Estructura de datos pdf
 
Trabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyyTrabajo de informatica.pptx yusssyy
Trabajo de informatica.pptx yusssyy
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
Tema1 (2)
Tema1 (2)Tema1 (2)
Tema1 (2)
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Repaso
RepasoRepaso
Repaso
 
Presentacion proyecto
Presentacion proyectoPresentacion proyecto
Presentacion proyecto
 
Base de datos
Base de datosBase de datos
Base de datos
 
Administrador de la bases de datos
Administrador de la bases de datosAdministrador de la bases de datos
Administrador de la bases de datos
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
 
GUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docxGUÍA 1_Administración de Base de Datos.docx
GUÍA 1_Administración de Base de Datos.docx
 
Trabajo de marco
Trabajo de marcoTrabajo de marco
Trabajo de marco
 
Presentación1
Presentación1Presentación1
Presentación1
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 

Recently uploaded

Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONALMiNeyi1
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 

Recently uploaded (20)

Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 

equipo 3 clasificación de estructura(2.pptx

  • 1. ESTRUCTURA DE DATOS ALUMNOS : JOAQUIN LOZANO NUÑEZ TEMAS: Introducción a las estructuras de datos 1.1 Clasificación de las estructuras de datos. 1.2 Tipos de datos abstractos (TDA). 1.3 Ejemplos de TDA´S
  • 2. INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Las estructuras de datos son formas de organizar y almacenar datos de manera eficiente en un programa de computadora. Son esenciales para resolver problemas y optimizar el uso de recursos como tiempo y espacio en memoria. Existen diversas estructuras de datos, cada una con sus propias características y ventajas. Algunas de las estructuras de datos más comunes incluyen arrays, listas enlazadas, pilas, colas, árboles y grafos. Cada estructura de datos tiene sus propias operaciones y métodos para insertar, eliminar y acceder a los datos almacenados. La elección de la estructura de datos adecuada depende del problema que se esté resolviendo y de los requisitos de eficiencia.
  • 3. 1.1 Clasificación de las Estructuras de datos Las estructuras de datos son formas de organizar y almacenar datos en la memoria de una computadora para que puedan ser accedidos y gestionados de manera eficiente. Estas estructuras se pueden clasificar de varias maneras, dependiendo de diferentes criterios.
  • 4. Estructuras primitivas y simples: Estructuras primitivas: • Son primitivas aquellas que no están compuestas por otras estructuras de datos por ejemplo: • Enteros • Booleanos • Caracteres • Otras estructuras de datos se pueden construir de una o mas primitivas. Estructuras simples: Las estructuras de datos simples que consideramos se construyen a partir de estructuras primitivas y son: • Cadenas • Arreglos • Registros A estas estructuras de datos las respaldan muchos lenguajes de programación.
  • 5.
  • 6.
  • 7.
  • 8. Estructuras lineales y no lineales: Las estructuras de datos simples se pueden combinar de varias maneras para formar estructuras mas complejas. Las estructuras de datos lineales incluyen: • Pilas • Colas • listas ligadas lineales Las estructuras de datos no lineales incluyen: • Grafos • Arboles.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. 1.2Tipos de datos abstractos TDA). Tipo Abstracto de Datos (TAD) es un concepto que define un conjunto de valores y las operaciones que se pueden realizar sobre esos valores sin exponer los detalles internos de cómo se implementan esas operaciones. Esto ayuda a encapsular la complejidad y proporcionar una interfaz clara para trabajar con los datos. Aquí hay algunos ejemplos de tipos abstractos de datos.
  • 15. DATOS ABSTRACTOS 1. LISTAS ENLAZADAS : Implementación con un arreglo dinámico: Un arreglo que puede crecer o disminuir automáticamente según la cantidad de elementos. Operaciones como `agregar`, `eliminar` y `obtener` elementos por índice. 2. PILAS: Implementación con arreglo: es una lista ordenada o estructura de datos que permite almacenar y recuperar datos de acceso a sus elementos de tipo LIFO (del inglés Last In, First Out, «último en entrar, primero en salir») 3. COLAS: Implementación con arreglo circular: es un grupo ordenado de elementos del mismo tipo, en la cual dichos elementos se añaden por un extremo (Final) y se quitan por el otro extremo (Frente). FIFO (First In First Out), es decir, que el primer elemento en entrar es el primer elemento en salir. 4. ÁRBOLES: Es un tipo abstracto de datos (TAD) ampliamente usado que imita la estructura jerárquica de un árbol, con un valor en la raíz y subárboles con un nodo padre, representado como un conjunto de nodos enlazados. 5. GRAFOS: un grafo es una estructura de datos no lineal que consiste en un conjunto de nodos y arcos. Los nodos representan los elementos o entidades, mientras que los arcos representan las relaciones o conexiones entre los elementos. 6. TABLAS DE HASH: Las tablas hash son estructuras de datos que se utilizan para almacenar un número elevado de datos sobre los que se necesitan operaciones de búsqueda e inserción muy eficientes. Esta asocia llaves o claves con valores
  • 16. 1.3 Ejemplos de TDA’S
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Introducción Integrantes: Melissa Jimenez Gallardo - 21321069 Pedro Silva Muñoz - 21321213 A la estructura de datos Lunes, 18 de septiembre de 2023 Estructura de datos Equipo 3
  • 22. Subtemas. 1.4.- Manejo de memoria. 1.4.1.- Memoria estática. 1.4.2.- Memoria dinámica. 1.5.- Análisis de Algoritmos. 1.5.1.- Complejidad en el tiempo. 1.5.2.- Complejidad en el espacio. 1.5.3.- Eficiencia de los Algoritmos
  • 23. 1.4.- Manejo de memoria Todas las variables, arreglos y objetos en general tienen una duración determinada en el transcurso de un programa. Son creados y destruidos para su uso y después para que la memoria sea liberada para que la utilicen otros objetos. En C# existen tres formas de usar la memoria para almacenar valores, son:
  • 24. 1.4.1. - Memoria Estática La memoria estática es la que se reserva en el momento de la compilación antes de comenzar a ejecutarse el programa. Los objetos son creados en ese momento y destruidos al finalizar el programa. Mantienen la misma localización en memoria durante todo el transcurso del programa. Los objetos administrados de ese modo son: - Variables static - Variables globales - Miembros static de clases - Literales cualquier tipo
  • 25. Arreglos estáticos: Un arreglo estático es una estructura de datos en la que se reserva una cantidad fija de memoria para almacenar elementos del mismo tipo. La cantidad de memoria se asigna en tiempo de compilación y no puede cambiarse durante la ejecución del programa. Por ejemplo, en C o C++, puedes declarar un arreglo estático de enteros como: Int miArreglo[10]; En este caso, se asigna estáticamente memoria para 10 enteros, y esta asignación no cambia mientras el programa se ejecuta. EJEMPLO :
  • 26. Variables estáticas: En muchos lenguajes de programación, puedes declarar variables estáticas que mantienen su valor entre llamadas a una función. Estas variables se almacenan en una ubicación de memoria estática y conservan su valor entre llamadas. Por ejemplo, en C, puedes declarar una variable estática de la siguiente manera: Static int contador = 0; La variable contador conservará su valor entre llamadas a la función que la contiene.
  • 27. 1.4.2- Memoria dinámica. La memoria dinámica es un espacio de almacenamiento que se solicita en tiempo de ejecución. De esa manera, a medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas. El medio para manejar la memoria que otorga el sistema operativo, es el puntero, puesto que no podemos saber en tiempo de compilación dónde nos dará huecos el sistema operativo (en la memoria de nuestro PC).
  • 28. VENTAJAS: 1.-Es posible disponer de un espacio de memoria arbitrario que dependa de información dinámica (disponible sólo en ejecución): Toda esa memoria que maneja es implementada por el programador cuando fuese necesario. 2.-Otra ventaja de la memoria dinámica es que se puede ir incrementando durante la ejecución del programa. Esto permite, por ejemplo, trabajar con arreglos dinámicos. 3.-Es memoria que se reserva en tiempo de ejecución. Su tamaño puede variar durante la ejecución del programa y puede ser liberado mediante la función free.
  • 29. DESVENTAJAS: 1.-Es difícil de implementar en el desarrollo de un programa o aplicación. 2.-Es difícil implementar estructuras de datos complejas como son los tipos recursivos (árboles, grafos, etc.).Por ello necesitamos una forma para solicitar y liberar memoria para nuevas variables que puedan ser necesarias durante la ejecución de nuestros programas: Heap. 3.-Una desventaja de la memoria dinámica es que es más difícil de manejar.
  • 30. 4.-La memoria dinámica puede afectar el rendimiento. Puesto que con la memoria estática el tamaño de las variables se conoce en tiempo de compilación, esta información está incluida en el código objeto generado. Cuando se reserva memoria de manera dinámica, 5.-Se tienen que llevar a cabo varias tareas, como buscar un bloque de memoria libre y almacenar la posición y tamaño de la memoria asignada, de manera que pueda ser liberada más adelante. Todo esto representa una carga adicional, aunque esto depende de la implementación y hay técnicas para reducir su impacto.
  • 31. 1.5.- Análisis de algoritmos Son profesionales que se dedican a analizar y optimizar algoritmos utilizados en el procesamiento de datos. Su trabajo implica comprender cómo se almacenan y organizan los datos en diferentes estructuras, como listas, árboles, grafos, matrices, entre otros, y evaluar la eficiencia de los algoritmos que operan sobre estas estructuras. Estos analistas se aseguran de que los algoritmos sean eficientes en términos de tiempo y espacio, identificando y resolviendo cuellos de botella en el procesamiento de datos. También pueden estar involucrados en la selección de la estructura de datos adecuada para una tarea específica y en la implementación de algoritmos optimizados.
  • 32. 1.5.1- Complejidad en el tiempo Se refiere a la cantidad de tiempo que toma realizar operaciones específicas en esa estructura de datos en función del tamaño de los datos o elementos involucrados. Esta medida es fundamental para evaluar la eficiencia de un algoritmo o estructura de datos en términos de velocidad de ejecución. Por lo general, se expresan las complejidades en el tiempo en notación big O (O()), que describe el límite superior asintótico de la cantidad de operaciones necesarias en función del tamaño de entrada. Algunas de las complejidades de tiempo comunes para operaciones en estructuras de datos incluyen:
  • 33. Búsqueda: Representada como O(log n) para estructuras de datos como árboles binarios de búsqueda y O(1) para tablas de dispersión (hash tables). Inserción: La complejidad varía según la estructura de datos. En una lista enlazada, por ejemplo, puede ser O(1) para la inserción al principio y O(n) para la inserción en medio. Eliminación: Al igual que la inserción, la complejidad depende de la estructura de datos y la posición del elemento a eliminar. Recorrido (traversal): Por lo general, O(n) ya que suele ser necesario visitar cada elemento de la estructura. Ordenamiento: La complejidad depende del algoritmo de ordenamiento utilizado. Por ejemplo, el ordenamiento por burbuja es O(n^2), mientras que el ordenamiento rápido (quicksort) es O(n log n).
  • 34. 1.5.2.- Complejidad en el espacio. La complejidad en el espacio, también conocida como uso de memoria, es un concepto importante en la computación y se refiere a cuánta memoria se necesita para ejecutar un algoritmo o almacenar datos. La elección de la estructura de datos adecuada puede influir significativamente en la complejidad en el espacio de un programa. Algunas estructuras de datos comunes y sus implicaciones en la complejidad en el espacio incluyen:
  • 35. 1. Arreglos: Los arreglos tienen una complejidad en el espacio fija, ya que ocupan una cantidad de memoria predefinida. Sin embargo, su tamaño debe ser conocido de antemano, lo que puede ser una limitación. 2. Listas enlazadas: Las listas enlazadas pueden usar memoria de manera más eficiente que los arreglos en algunos casos, ya que los nodos solo ocupan la memoria necesaria para almacenar su valor y una referencia al siguiente nodo. Sin embargo, requieren espacio adicional para las referencias.
  • 36. Árboles y grafos: Estructuras de datos como árboles y grafos pueden ocupar más memoria que las listas enlazadas o los arreglos debido a las múltiples conexiones entre nodos. La complejidad en el espacio depende de la profundidad y el grado de ramificación de la estructura. Tablas de dispersión (hash tables): Las tablas de dispersión pueden ocupar una cantidad variable de memoria, dependiendo de la cantidad de elementos que se almacenan y la eficiencia del factor de carga. Pueden ser muy eficientes en términos de espacio si se gestionan correctamente.
  • 37. 1.5.3.- Eficiencia de los algoritmos. Un algoritmo será más eficiente cuanto menos recursos computacionales consuma: tiempo y espacio de memoria requerido para su ejecución. La eficiencia de un algoritmo se cuantifica en términos de su complejidad temporal (tiempo de cómputo del programa) y su complejidad espacial (memoria que utiliza el programa durante su ejecución).
  • 38. • La selección de un algoritmo es un proceso en el que se deben tener en cuenta muchos factores, entre los cuales podemos destacar los siguientes: • La complejidad en tiempo del algoritmo. Es una primera medida de la calidad de una rutina y establece su comportamiento cuando el número de datos a procesar es grande. • La complejidad en espacio del algoritmo. Sólo cuando esta complejidad resulta razonable es posible utilizar este algoritmo con seguridad. Si las necesidades de memoria del algoritmo crecen considerablemente con el tamaño del problema el rango de utilidad del algoritmo es baja y se debe descartar.
  • 39. • La dificultad de implementar el algoritmo . En algunos casos el algoritmo óptimo puede resultar tan difícil de implementar que no se justifique desarrollarlo para la aplicación que se le va a dar. • El tamaño del problema que se va a resolver. Un algoritmo para un proceso tamaño pequeño no justifica la realización de un análisis, ya que da lo mismo una implementación que otra.