Estructuras de Datos Dinámicas

Slides:



Advertisements
Presentaciones similares

Advertisements

Tipos de Datos abstractos
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
Tipos de Datos abstractos
Arreglos Bidimensionales Otoño FCC - BUAP Otoño 2015MC Beatriz Beltrán Martínez101  Hasta este momento se han visto arreglos unidimensionales.
L ISTAS ENLAZADAS M.IA. Daniel Alejandro García López.
INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO. MATERIA: Estructura De Datos TIPO: Presentación (Unidad 3 Estructura lineales ) DOCENTE: MTL.
Archivos en Java Unidad III – Programación Orientada a Objetos en Java Programación I
TIPOS ABSTRACTOS DE DATOS.
Programación Avanzada
Polimorfismo y Métodos Virtuales
Manejo de Punteros y objetos en memoria dinámica en C++
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
SAP Business One, Versión 9.0
SQL Prof. Martín Contreras.
Algunas Características de C++ no presentes en C
Tema 4 Árboles Prof. Oscar Adolfo Vallejos.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2016
Listas enlazadas particulares
Memorias Una memoria es un espacio en el cual se puede almacenar información y es análogo a un arreglo o array en programación convencional. En VHDL una.
Programación I MC Beatriz Beltrán Martínez
Tema 4 Elementos para el Desarrollo de Algoritmos
Algunas Características de C++ no presentes en C
Manejo de Punteros y objetos en memoria dinámica en C++
Listas Dinámicas.
Definición y Conversión de datos
Programación I MC Beatriz Beltrán Martínez
Tipos de Datos abstractos
Tema 7 Arreglos Parte 1.
PREZI..
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
OMRI 2017 *inserta fecha aquí*
LENGUAJE DE PROGRAMACION “PILAS”
Los sistemas distribuidos y su middleware asociado deben proporcionar soluciones generales para lograr la protección de características indeseables a las.
Conceptos de bases de datos
Iniciando la exploración
ARRAYS Y COLECCIONES DE DATOS
Manejo de Punteros y objetos en memoria dinámica en C++
Sabes Que es un ALGORITMO
LENGUAJE C.
ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Tipos de Datos abstractos
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Tipos de Datos abstractos
INTRODUCCION Hasta ahora solo hemos tenido que trabajar con algunas variables en cada uno de los programas que hemos realizado. Sin embargo, en más de.
Estructuras Dinámicas
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
Listas ligadas Dra. María de Lourdes López García
Metodología de la Programación
MC Beatriz Beltrán Martínez Otoño 2017
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Diagrama E – R Para indicadores de papeles empleado Id_empleado
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
MC Beatriz Beltrán Martínez Verano 2018
Informática Ingeniería en Electrónica y Automática Industrial
Curso de Programación Estructurada
MATRICES. ¿QUÉ ES UNA MATRIZ? Una matriz es un espacio bidimensional que se genera en la memoria del computador. Las matrices deben tener un nombre que.
ÁRBOLES DE EXPRESION. Un árbol de expresión sirve para evaluar expresiones del tipo: (a+b)*c/d Para que un árbol represente una expresión se deben tomar.
Informática Ingeniería en Electrónica y Automática Industrial
Manejo de Punteros y objetos en memoria dinámica en C++
Manejo de Punteros y objetos en memoria dinámica en C++
Departamento de Ingeniería de Sistemas e Industrial
Arreglos Bidimensionales
Polimorfismo en C++ y Métodos Virtuales
M.C. José Andrés Vázquez Flores
Macros EN EXCEL.
Memoria estática versus dinámica con Estructuras
Transcripción de la presentación:

Estructuras de Datos Dinámicas MC Beatriz Beltrán Martínez Primavera 2018

Memoria dinámica La mayoría de los lenguajes de programación permiten manejar dos tipos de almacenamiento de datos: Memoria estática: Que es la que se maneja tradicionalmente, cuyas características son: Se define explícitamente al declarar una variable, ya sea global o local. El compilador genera automáticamente el espacio de memoria. Se mantiene fija durante toda la vida de la variable. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Memoria dinámica Memoria dinámica: Que permite crear o destruir espacios de memoria, según indicaciones del programador durante la ejecución del programa, y cuyas características son: Utiliza una parte de la memoria principal denominada heap. Apoya el uso eficiente de la memoria durante la ejecución. Requiere de apuntadores que almacenen direcciones de memoria real. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Memoria dinámica Para reservar memoria se hace uso en lenguaje C de malloc y free. Para reservar memoria se hace uso en lenguaje C++ de new y delete. Cada vez que se este reservando memoria esta debe ser liberada antes de salir del programa. Se debe tener cuidado de no perder los apuntadores. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Listas Ligadas Una lista ligada es un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la organización no esta dada implícitamente por su posición en el arreglo. En una lista ligada cada elemento es un nodo que contiene el dato y además una liga al siguiente dato. Estas ligas son simplemente variables que contienen la(s) dirección(es) de los datos contiguos o relacionados FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Listas Ligadas Para manejar una lista es necesario contar con un apuntador al primer elemento de la lista denominado "cabeza". En una lista ligada se pueden realizar básicamente 4 operaciones: Recorrer: Moverse sobre los elementos de la lista, partiendo del inicio y llegando al final. Insertar: Añadir elementos a la lista. Eliminar: Quitar elementos de la lista. Buscar: Verificar la existencia de un elemento dado dentro de la lista. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Listas Ligadas Se usará Crea_nodo(P) para indicar la asignación de memoria dinámica que es apuntada por P, esto es: Para referirse a datos almacenados se utiliza la notación: P^.info P^.sig FCC-BUAP Primavera 2018 P info sig MC Beatriz Beltrán Martínez

Listas Ligadas Para indicar que el apuntador sig anota a nulo (nada) se utiliza: Y se denota por: P^.sig  NULO FCC-BUAP Primavera 2018 P info sig MC Beatriz Beltrán Martínez

Lista Ligada Simple - Insertar Al inicio la cabeza = NULO. Se inserta el primer dato, con lo cual: Ahora si se inserta otro dato, si este es menor, quedaría: FCC-BUAP Primavera 2018 P 20 Cabeza MC Beatriz Beltrán Martínez P Cabeza 7 20 Cabeza

Insertar Si el dato es mayor que todos los datos en la lista, queda: Finalmente el caso más general, es insertar entre dos elementos de la lista, siendo este dato mayor al elemento que esté a la izquierda y menor que el dato que esté a la derecha. FCC-BUAP Primavera 2018 Cabeza P 7 20 35 MC Beatriz Beltrán Martínez

Insertar Quedando así: Cabeza 7 20 35 P 29 FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez P 29

Lista Ligada Simple - Eliminar Si la cabeza = NULO, entonces marcar error. Si la cabeza es el elemento a eliminar, el siguiente elemento ahora será la cabeza: FCC-BUAP Primavera 2018 Cabeza Cabeza 7 20 29 MC Beatriz Beltrán Martínez P 35

Eliminar Cuando el elemento a eliminar esta en medio de la lista, quedaría: O bien, si es el último elemento en la lista: FCC-BUAP Primavera 2018 Cabeza 20 29 35 P MC Beatriz Beltrán Martínez Cabeza 20 29 35