Estructuras de datos y algoritmos

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.
Estructuras de datos y algoritmos
Cont. Arbol Binario de Búsqueda
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
L ISTAS E NLAZADAS No son mas que un conjunto o lista de objetos que a diferencia de los vectores, estas poseen la capacidad de crecer o decrecer. Por.
Estructuras dinámicas de datos, TAD Lista, parte 2
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
C++ LISTAS C++ 11/04/2017 Ing. Edgar Ruiz Lizama.
Pilas y Colas Estructuras de Datos.
LISTA DOBLEMENTE ENLAZADA
Grafos..
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
Algoritmos y Estructuras de datos Listas Doblemente enlazadas
Listas. Utilización de un TAD Lista. Interfaz del TAD LISTA public interface Lista { void crearNodo (); /*Crea un nuevo nodo en el TadLista*/ int devolverClave.
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.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Estructura de Datos Luis Humeau Waldi Saturno
L ISTAS ENLAZADAS M.IA. Daniel Alejandro García López.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Árboles binarios. Algoritmos básicos
¿Cómo almacenar grandes cantidades de datos?
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Estructuras PILA - COLA - LISTA.
Tema 3 Árboles. Conceptos Generales. Curso 2014/2015 ETSISI UPM.
¿Cómo almacenar grandes cantidades de datos?
TAD’s ARBOLES GENERALIZADOS
Clase Lista C++ Estándar
¿Cómo almacenar grandes cantidades de datos?
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2016
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Listas enlazadas particulares
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
LISTAS..
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Diseño y Programación Orientada a Objetos
¿Cómo almacenar grandes cantidades de datos?
COMO ALMACENAR GRANDES CANTIDADES DE DATOS?
Listas Dinámicas.
IPOO 2 cuatrimestre 2016 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Á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.
PILAS Y COLAS INTEGRANTES: JAVIER GONZALEZ JORGE LUIS SOLIS ISAC FERNANDEZ.
Árboles clase 6 Apoyo de Práctica. Resumen ●Árboles ○Concepto ○Características ○Dinámica ○Recorridos o barridos. ●Ejercicio Sugerido.
Clase25: Listas Enlazadas
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
Estructuras Dinámicas
EL TDA COLA Estructuras de Datos.
Listas ligadas Dra. María de Lourdes López García
Clase 23: Stacks y Queues 27-octubre J.Alvarez.
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.
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.
Minimum Spanning Tree (Árbol de Expansión Mínima)
Casos de prueba con JUnit
Clase25: Listas Enlazadas
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
Tratamientos secuenciales I
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Á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
Clase25: Listas Enlazadas
ESTRUCTURA DE DATOS. COLECCIONES DE OBJETOS Una colección de objetos es sencillamente un conjunto de cosas del mismo tipo. Algunas veces utilizamos otras.
Transcripción de la presentación:

Estructuras de datos y algoritmos Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Listas enlazadas Definición Una lista enlazada también recibe el nombre de "lista concatenada", "lista eslabonada" o "lista lineal". Una lista enlazada es una colección de elementos llamados nodos. Cada nodo contiene un dato y una referencia al siguiente nodo.

Listas enlazadas dato siguiente dato siguiente 23 99 Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál es el nodo con el que se enlaza

Listas enlazadas Lista enlazada con 3 nodos. Los nodos tienen datos de tipo entero. 23 6 99 Nodo 1 Dato: 23 Siguiente: Nodo 2 Nodo 2 Dato: 6 Siguiente: Nodo 3 Nodo 3 Dato: 99 Siguiente: null (indica que es el fin de la lista)

Listas enlazadas Lista enlazada con 3 nodos. Los nodos tienen datos de tipo String. oscar kate sarah Nodo 1 Dato: oscar Siguiente: Nodo 2 Nodo 2 Dato: kate Siguiente: Nodo 3 Nodo 3 Dato: sarah Siguiente: null

Listas enlazadas Definición Una lista enlazada es una estructura de datos dinámica que permite almacenar cualquier cantidad de nodos Las operaciones sobre una lista enlazada son: Crear lista Insertar nodo al inicio Eliminar nodo al inicio Imprimir datos Es una lista vacía?

No contiene ningún dato Listas enlazadas Definición E A R E Al primer nodo se le llama cabecera y sirve como punto de referencia en la lista. No contiene ningún dato

Listas enlazadas Crear lista Al crear una lista, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null.

Insertar nodo al inicio( La lista está vacía) Listas enlazadas Insertar nodo al inicio( La lista está vacía) Se crea un nuevo nodo con el dato que se desee colocar y con siguiente null El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado W

Insertar nodo al inicio( La lista no está vacía) Listas enlazadas Insertar nodo al inicio( La lista no está vacía) W A W Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando

Eliminar nodo al inicio Listas enlazadas Eliminar nodo al inicio A W W Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo

Listas enlazadas Imprimir datos

Listas enlazadas Está una lista vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null

Listas enlazadas class Nodo{ Object dato; Nodo siguiente; Nodo(Object o) { dato=o; siguiente=null; } Nodo(Object o, Nodo n) siguiente=n; Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál es el nodo con el que se enlaza

Al crear una lista, se crea el nodo cabecera. Listas enlazadas Crear lista Al crear una lista, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null. class Lista{ Nodo cabecera; Lista() { cabecera=new Nodo(null); } . . .

Cuando la lista está vacía el campo siguiente de la cabecera es null Listas enlazadas public boolean estaVacia(){ if (cabecera.siguiente==null) { return true; } else return false; Está una lista vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null

Listas enlazadas void insertar(Object o) { Insertar nodo al inicio Nodo nuevo=new Nodo(null); if ( estaVacia() ) nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; } Insertar nodo al inicio ( La lista está vacía) Se crea un nuevo nodo con el dato que se desee colocar y con siguiente null El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado

Listas enlazadas if ( estaVacia() ) { Insertar nodo al inicio nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; } else nuevo.siguiente=cabecera.siguiente; Insertar nodo al inicio ( La lista no está vacía) Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando

Listas enlazadas public void eliminar() Eliminar nodo al inicio { Nodo borrar=cabecera.siguiente; cabecera.siguiente=borrar.siguiente; } Eliminar nodo al inicio Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo

Listas enlazadas Imprimir datos public void imprimir() { Nodo actual=new Nodo(null); if (estaVacia()) System.out.println(“La lista esta vacia"); else actual=cabecera; System.out.println("\n"); while( actual != null){ System.out.print( actual.dato ); actual=actual.siguiente; } Imprimir datos

Listas enlazadas