Guía práctica de estudio 07. Estructuras de datos lineales: Lista simple y lista circular.

Documentos relacionados
Capítulo 5. LISTAS. 5.1 Listas y listas vinculadas. Una lista es una colección lineal de elementos.

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

Lenguajes III Análisis y Diseño de Algoritmos

Estructura de Datos. Listas Enlazadas

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

Estructuras Dinámicas de datos.

Estructura de Datos Árboles Árboles 2-3

Tema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna

Guía práctica de estudio 03. Tipo de dato abstracto

PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA

Guía práctica de estudio 04. Almacenamiento en tiempo de ejecución

Estructuras de Datos II

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz

Algoritmia para problemas difíciles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

Unidad Nº V Listas Enlazadas

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

4.1 Concepto de árbol.

ELO320 Estructuras de Datos y Algoritmos. Listas. Tomás Arredondo Vidal

Guía práctica de estudio 11: Arreglos unidimensionales y multidimensionales

Programación Dinámica

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES

Guía práctica de estudio 06: Estructuras de repetición

LISTAS. Prof. Ing. M.Sc. Fulbia Torres

Guía práctica de estudio 09: UML

Estructuras de Datos Dinámicas Contenido del Tema

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica

Tema 3. Estructura de datos lineales. J.T.P. Maria Eugenia Valesani - Programacion 1 - Fa.Ce.Na.

Tipos Recursivos de Datos

Introducción: una simple colección

Planificaciones Teoría de Algoritmos I. Docente responsable: BARRIOS FEDERICO LUIS. 1 de 5

Guía práctica de estudio 03: Algoritmos

Estructura de datos y algoritmos. Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios

Planificaciones Teoría de Algoritmos I. Docente responsable: WACHENCHAUZER ROSA GRACIELA. 1 de 5

1.2.4 Listas enlazadas

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.

Profesor: José Miguel Rubio L.

Estructura de Datos. Centro Universitario UAEM Valle de México. Unidad II. Estructuras de Datos Lineales - Listas

COMPUTABILIDAD Y COMPLEJIDAD

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa

Universidad Nacional del Santa Facultad de Ingeniería Escuela Académico Profesional de Ingeniería de Sistemas e Informática

Universidad Centroccidental "Lisandro Alvarado" Decanato de Ciencias y Tecnología Departamento de

1.- IDENTIFICACION: PYPE-01

ÍNDICE TEMÁTICO. Teóricas Prácticas 1 Estructuras fundamentales Introducción a la programación en Java

Estructuras dinámicas lineales (ii)

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS

Tema 03: TAD Cola. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos).

Experiencia en gestión de proyectos, bases de datos, licenciatura en informática o afines

Algoritmos y estructuras de datos

Tema 10: Árbol binario de búsqueda

Algoritmos y Lenguajes de Programación

DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA

A: Aplicación de las Ciencias y las Matemáticas (A) C: Diseño de Software (T) E: Solución de Problemas (T) K: Herramientas de Ingeniería (A)

Estructura de datos y de la información Boletín de problemas - Tema 10

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Nombre de la asignatura : Estructura de Datos I. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9321

Guía práctica de estudio 05: Pseudocódigo

Análisis de Algoritmos

Guía práctica de estudio 03: Algoritmos

Algoritmos y Programación II Curso 2006

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

UNIDAD 9. DATOS COMPLEJOS PILAS

Árboles balanceados (AVL) Estructura de datos

Guía práctica de estudio 05: Diagramas de flujo

Estructuras lineales de datos

Tema 4. Estructuras no lineales de datos: árboles

Árboles B y B ) 20. Algoritmos y Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 63

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Estructuras de datos geométricas

Benemérita Universidad Autónoma de Puebla Vicerrectoría de Docencia Dirección General de Educación Superior Facultad de Ciencias de la Computación

GUÍA DOCENTE 1. DESCRIPCIÓN DE LA ASIGNATURA

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en Ingeniería en Computación

Para la Implementación Dinámica de listas: Se usa la asignación dinámica de memoria mediante punteros o referencias.

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas...

Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento

SYLLABUS I. JUSTIFICACIÓN DEL ESPACIO ACADÉMICO

Descubrir los árboles como paradigma de los tipos Recursivos de Datos

Francisco J. Hernández López

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

PROGRAMA SINTÉTICO. Ingeniería en Comunicaciones y Electrónica

BASES DE DATOS. TABLA PLANETAS.

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

Estructura de Datos. Estructuras de Datos no lineales : Árboles

Capitulo V Listas Enlazadas

Guía práctica de estudio 08: Polimorfismo

Tablas de dispersión (hash tables)

Estructuras de datos utilizando JAVA

Carrera: INM Participantes Representante de las academias de ingeniería industrial de Institutos Tecnológicos.

Capítulo. Listas, pilas y colas en C. Contenido. Introducción

Transcripción:

Guía práctica de estudio 07. Estructuras de datos lineales: Lista simple y lista circular. Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena

Guía práctica de estudio 07. Estructuras de datos lineales: Lista simple y lista circular. Objetivo: Revisarás las definiciones, características, procedimientos y ejemplos de las estructuras lineales Lista simple y Lista circular, con la finalidad de que comprendas sus estructuras y puedas implementarlas. Introducción Las listas son un tipo de estructura de datos lineal y dinámica. Es lineal porque cada elemento tiene un único predecesor y un único sucesor, y es dinámica porque su tamaño no es fijo y se puede definir conforme se requiera. Las operaciones básicas dentro de una lista son BUSCAR, INSERTAR Y ELIMINAR. Lista simple Una lista simple (también conocida como lista ligada o lista simplemente ligada) está constituida por un conjunto de nodos alineados de manera lineal (uno después de otro) y unidos entre sí por una referencia. A diferencia de un arreglo, el cual también es un conjunto de nodos alineados de manera lineal, el orden está determinado por una referencia, no por un índice, y el tamaño no es fijo. La unidad básica de una lista simple es un elemento o nodo. Cada elemento de la lista es un objeto que contiene la información que se desea almacenar, así como una referencia (NEXT) al siguiente elemento (SUCESOR). 1

Para poder diseñar un algoritmo que defina el comportamiento de una LISTA LIGADA se deben considerar 2 casos para cada operación (BUSCAR, INSERTAR y ELIMINAR): Estructura vacía (caso extremo). Estructura con elemento(s) (caso base). Buscar El método debe buscar el primer elemento que coincida con la llave K dentro de la lista L, a través de una búsqueda lineal simple, regresando un apuntador a dicho elemento si éste se encuentra en la lista o nulo en caso contrario. Una lista simple vacía no contiene elementos, la referencia al inicio de la misma (head) apunta a nulo, por lo tanto, en una lista vacía no es posible buscar elementos. Una lista simple con elementos puede contener de 1 a n elementos, en tal caso, la referencia al inicio (HEAD) apunta al primer elemento de la lista. Es posible recorrer la lista a través de la referencia (NEXT) de cada nodo hasta llegar al que apunta a nulo, el cuál será el último elemento. Por lo tanto, dentro de una lista simple con elementos es posible buscar una llave K. Insertar Dado un nodo x que contenga una llave k previamente establecida, el método INSERTAR agrega el elemento x al inicio de la lista. Es posible insertar elementos tanto en una lista simple vacía como en una lista simple con elementos. Cuando se inserta un nuevo elemento en una lista simple vacía la referencia al inicio de la lista (HEAD) apunta al nodo insertado. 2

Cuando se inserta un nuevo elemento en una lista simple con elementos, la referencia del nuevo nodo (NEXT) apunta al mismo nodo al que apunta el inicio de la lista (HEAD) y ahora HEAD apunta al nuevo nodo. Borrar El método elimina el elemento x de la lista L (si es que éste se encuentra en la estructura). Para eliminar un elemento de la lista primero es necesario saber la ubicación del nodo a eliminar, por lo tanto, primero se debe realizar una búsqueda del elemento. En una lista simple vacía no es posible eliminar, debido a que esta estructura no contiene elementos. Para eliminar un nodo en una lista simple con elementos, primero se debe buscar el elemento a eliminar, una vez encontrado el nodo en la lista, se deben mover las referencias de la estructura de tal manera de que el antecesor del nodo a eliminar apunte al sucesor del mismo. 3

Aplicación Las listas son una de las estructuras de datos más utilizadas en las ciencias de la computación. Por ejemplo, cualquier red social utiliza una lista simple, en la que cada elemento tiene un único sucesor que sería la siguiente publicación, hasta llegar a la última. Figura 1. Inicio y fin de publicaciones en twitter. Se pueden realizar ene cantidad de publicaciones, siempre insertando por delante (TAIL) y la última publicación (TAIL) no tiene sucesor (NULO). 4

Lista circular Una lista circular es una lista simplemente ligada modificada, donde el apuntador del elemento que se encuentra al final de la lista (TAIL) apunta al primer elemento de la lista (HEAD). Buscar El método debe buscar el primer elemento que coincida con la llave K dentro de la lista L, a través de una búsqueda lineal simple, regresando un apuntador a dicho elemento si éste se encuentra en la lista o nulo en caso contrario. Una lista circular vacía no contiene elementos, la referencia al inicio de la misma (HEAD) apunta a NULO, por lo tanto, en una lista vacía no es posible buscar elementos. Una lista circular con elementos puede contener de 1 a n elementos, en tal caso, la referencia al inicio (HEAD) apunta al primer elemento de la lista y la referencia a NEXT del último elemento apunta al primer elemento. Es posible recorrer la lista a través de la referencia (NEXT) de cada nodo, hay que tener en cuenta el número de elementos de la lista, ya que el último elemento apunta al inicio de la estructura y, por tanto, se puede recorrer de manera infinita. Dentro de una lista circular con elementos es posible buscar una llave K. 5

Insertar Dado un nodo x que contenga una llave K previamente establecida, el método INSERTAR agrega el elemento x al inicio de la lista. Es posible insertar elementos tanto en una lista circular vacía como en una lista circular con elementos. Cuando se inserta un nuevo elemento en una lista circular vacía la referencia al inicio de la lista (HEAD) apunta al nodo insertado y la referencia a NEXT del nodo apunta a sí mismo. Cuando se inserta un nuevo elemento en una lista circular con elementos, la referencia del nuevo nodo (NEXT) apunta al mismo nodo al que apunta el inicio de la lista (HEAD) y ahora HEAD apunta al nuevo nodo. Así mismo, el último nodo de la estructura (TAIL) apunta al primer elemento. 6

Borrar El método elimina el elemento x de la lista L (si es que éste se encuentra en la estructura). Para eliminar un elemento de la lista primero es necesario saber la ubicación del nodo a eliminar, por lo tanto, primero se debe realizar una búsqueda del elemento. En una lista circular vacía no es posible eliminar, debido a que esta estructura no contiene elementos. Para eliminar un nodo en una lista circular con elementos, primero se debe buscar el elemento a eliminar, una vez encontrado el nodo en la lista, se deben mover las referencias de la estructura de tal manera de que el antecesor del nodo a eliminar apunte al sucesor del mismo. Aplicación Una lista de canciones se puede reproducir de manera ordena o de manera desordenada (aleatoria). Así mismo, se puede repetir la lista de reproducción de manera automática, es decir, el sucesor del último elemento de la lista es el primer elemento de la lista, lo que genera una lista circular. Figura 2. Repetir lista de reproducción en avs4you. 7

Bibliografía Introduction to Algorithms. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, McGraw-Hill. The Algorithm Design Manual. Steven S. Skiena, Springer. @die_fi_unam [Figura 1]. Consulta: Enero de 2016. Disponible en: https://twitter.com/die_fi_unam Online Media Technologies Ltd. AVS Media Player [Figura 2]. Consulta: Enero de 2016. Disponible en: https://twitter.com/die_fi_unam 8