Listas ligadas Dra. María de Lourdes López García

Slides:



Advertisements
Presentaciones similares
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Advertisements

Listas enlazadas c++ Prof. Franklin Cedeño.
Implementación de listas
COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
INSTITUTO TECNOLOGICO DE APIZACO
Lic. En C.C. Ann Margareth Meza Rodríguez
Estructura de Datos..
PROGRAMACION DE Pilas o Stacks
M.C. Meliza Contreras González
Laboratorio de programación
Laboratorio de programación Luisa Fernanda Rincón Pérez
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.
Listas Dinámicas.
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
AYUDANTÍA 2 Lenguaje Imperativo y Java. Punteros Dirección a memoria (puede apuntar a NULL). Permite trabajar con memoria (variables dinámicas de heap).
Estructura de Datos Luis Humeau Waldi Saturno
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.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Búsqueda Binaria Castillo Soria Luis Fernando Méndez Tinajero Armando Pérez Ramos Susana.
MANEJO DE TEXTO Y OBJETOS AVANZADOS ENCABEZADOS Y PIES DE PÁGINA
Estado del arte y Gestión de la Información
Universidad Autónoma del Estado de México
Ingeniería en Sistemas
Selección directa “Heapsort”
Estructuras PILA - COLA - LISTA.
Montículos Binarios (Binary Heaps)
TAD’s ARBOLES GENERALIZADOS
Clase Lista C++ Estándar
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2016
Listas enlazadas particulares
LISTAS..
Sonia Rueda Herencia y Polimorfismo
Estructuras de datos y algoritmos
Listas Dinámicas.
Tipos de Datos abstractos
LENGUAJE DE PROGRAMACION III Estructuras Estáticas de Datos
Introducción a las estructuras de datos
LENGUAJE DE PROGRAMACION “PILAS”
ÁRBOLES El árbol es una estructura de datos muy importante en informática y en ciencias de la computación. Los árboles son estructuras no lineales,
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
Árboles clase 6 Apoyo de Práctica. Resumen ●Árboles ○Concepto ○Características ○Dinámica ○Recorridos o barridos. ●Ejercicio Sugerido.
ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
ABSTRACCION DE DATOS   Estructura de Datos Básicos: En programación una estructurad de datos, es una forma particular de organizar datos en una computadora.
Unidad V :- Integridad de datos.
Árboles Binarios de Búsqueda (ABB)
Antonio Jesús Roa Valverde
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Estructuras de Datos Dinámicas
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
Estructuras Dinámicas
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
EL TDA COLA Estructuras de Datos.
UNIDAD 8 Agregar al Inicio
UNIDAD 3 LISTAS LISTAS CIRCULARES Integrantes: Galmiche Vera Orlando Mandujano González Ramón Enrique Salvador Magaña Kelyn Osmara.
Ingeniería en Computación M. en C. J. Jesús Arellano Pimentel
“Conceptos Básicos de Java”
Arboles. Árboles ¿Qué son? Son Estructuras de datos “No lineales”” ¿Para que se utilizan? Representar Fórmulas Algebraicas Organizar Objetos Inteligencia.
Á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.
Árboles Binarios Estructuras de Datos.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Ingeniería en Computación M. en C. J. Jesús Arellano Pimentel
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
Departamento de Ingeniería de Sistemas e Industrial
UNIDAD II Generalidades sobre Algoritmos
Transcripción de la presentación:

Listas ligadas Dra. María de Lourdes López García mllopezg@uaemex.mx Universidad Autónoma del Estado de México Centro Universitario Valle de Chalco Ingeniero en Computación Listas ligadas Dra. María de Lourdes López García mllopezg@uaemex.mx Estructuras de datos Unidad de competencia II

El manejo de la memoria en las estructuras estáticas como los arreglos es ineficiente, sobretodo en arreglos de cadenas, en los cuales se desperdicia mucha memoria. Una alternativa es usar estructuras dinámicas a través de apuntadores. Introducción

La asignación de memoria se realiza conforme se vaya necesitando la adición de un nuevo elemento a la estructura. Tal hecho hace que se optimice la memoria al sólo usar la necesaria. Introducción Lourdes López ICO-UAEMEX 06/12/2018

Estructuras dinámicas Listas ligadas Sencillas y doblemente enlazadas Pilas LIFO Colas FIFO, Circulares Estructuras dinámicas

Listas ligadas

Una lista ligada es un conjunto de elementos; cada elemento contiene por lo menos dos campos y uno de ellos es un apuntador. Los campos pueden ser de cualquier tipo, sin embargo, el campo apuntador debe apuntar hacia un elemento de la misma lista. Listas ligadas

Clasificación Listas sencillas Listas doblemente enlazadas Lista circular Lista doblemente enlazada circular Clasificación

Una lista sencilla consta de un conjunto de nodos Una lista sencilla consta de un conjunto de nodos. Cada nodo contiene un campo apuntador hacia la misma estructura de la lista. Elementos Puntero cabecera Nodo Listas sencillas

Listas sencillas Operaciones básicas Inicialización de la cabecera Inserción de un nodo (al inicio, al final o en medio) Eliminación de un nodo (al inicio, al final o en medio) Listas sencillas

Inicialización

Inserción

Si se tiene un nodo en una posición intermedia, el apuntador del nodo previo (A) debe contener la dirección del nuevo nodo (B). Mientras que el apuntador de B apuntará a la dirección del nodo C Inserción

Eliminación

Eliminación El apuntador del nodo A, apuntará al nodo C y al final se libera B a través de su apuntador P free(p) Eliminación

Listas doblemente ligadas Una lista doblemente ligada consta de un conjunto de nodos. Cada nodo contiene dos campos apuntador hacia la misma estructura de la lista. Elementos Puntero cabecera Nodo Listas doblemente ligadas

Listas doblemente ligadas Operaciones básicas Inicialización de la cabecera Inserción de un nodo (al inicio, al final o en medio) Eliminación de un nodo (al inicio, al final o en medio) Recorrido de la lista (de izquierda a derecha y viceversa. Listas doblemente ligadas

Inicialización Note que ahora se encuentran definidos dos apuntadores. La tarea de cada apuntador es avanzar para «sig» y retroceder para «ant» Inicialización

Creación de un nuevo nodo La inserción para un nuevo nodo en una lista doblemente ligada, es igual que la lista sencilla. La única diferencia es que se considera el apuntador «ant» y se inicializa en NULL. Ptrant = NULL; Creación de un nuevo nodo

La inserción de un nodo es más sencilla, considerando que es posible avanzar y retroceder en la lista. El objetivo es buscar la posición donde se desea colocar el nuevo nodo y cuidar los apuntadores al momento de insertar para no perder los elementos contenidos en la lista. Inserción

La lista doblemente ligada es muy útil y sencilla para colocar los elementos en orden ascendente o descendente. Nota

La eliminación de un nodo, al igual que la inserción, es mucho más sencilla. Se identifica el nodo a eliminar y se cuidan los apuntadores, del nodo anterior y el nodo posterior. y se libera p free(p) Eliminación

Las listas sencilla circulares, no tienen un inicio o un final. El último nodo de la lista apunta hacia el primero. Listas circulares

Las operaciones básicas se hacen igual que en la lista sencilla. Sin embargo, al momento de recorrer la lista se debe considerar la cabecera tanto para iniciar como para terminar el recorrido. Ya que no hay algún nodo que apunte a NULL en su campo apuntador. Listas circulares

Listas circulares doblemente ligadas Este tipo de listas tienen una libertad completa para su recorrido. Listas circulares doblemente ligadas

Listas circulares doblemente ligadas Pueden avanzar de izquierda a derecha o viceversa y detenerse en cualquier nodo que al usuario le convenga. Se debe tener un apuntador cabecera que permita manipular la lista, pero no se considera el primer elemento de ella. Listas circulares doblemente ligadas

Sencillas Dobles Listas ligadas 1 apuntador (sig) 1 cabecera 2 apuntadores (sig,ant) Listas ligadas

Sencillas Dobles Listas circulares 1 apuntador (sig) 1 cabecera 2 apuntadores (sig,ant) 1 apuntador principal Listas circulares

Las estructuras dinámicas como las listas ligadas son muy útiles en la gestión de la memoria. La complejidad radica en el manejo de los apuntadores de acuerdo al tipo de lista. Comentarios finales

Las listas que no son circulares deben forzosamente tener una cabecera. Las listas circulares cuentan con un apuntador principal pero no necesariamente es el inicio de la lista. Comentarios finales

Luis Joyanes Aguilar, Ignacio Zahonero Martínez, “Estructura de datos: algoritmos, abstracción y objetos”, 3ra. Edición, McGraw- Hill, ISBN: 84-481-2042-6, 1999. Referencia