Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

PILA.
TDA LISTA ESTRUCTURAS DE DATOS.
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Listas enlazadas c++ Prof. Franklin Cedeño.
Programación II Listas
Estructuras de datos y algoritmos
Estructura de Datos En C++
Utilización de un TAD Arbol.
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
Estructuras de datos y algoritmos
Tema 5 Grafos..
Tema 5 Grafos. Implementación (I)..
Árboles binarios. Algoritmos básicos
Tema 1. Introducción a la programación (Lenguaje java).
Tratamiento de listas en Java
2.3 Cola de números enteros.
1.2 Sintaxis del lenguaje Java.
Tema 4 Árboles. Árbol sobre matriz.
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Marzo 2007 Lenguajes Visuales Clase III.
Estructuras de Datos Especificación formal de Listas.
Programación II Colas Igor Santos Grueiro.
Colas y Listas Enlazadas
Método en Java.
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.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Estructuras dinámicas de datos, TAD Lista, parte 2
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
Tema 6: Clases Antonio J. Sierra.
Listas circulares.
Técnicas avanzadas de programación Interfaces
Colecciones.
Programación orientada a objetos
Estructuras de datos y algoritmos
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
ÁRBOLES BINARIOS DE BÚSQUEDA
C++ LISTAS C++ 11/04/2017 Ing. Edgar Ruiz Lizama.
Coloración de Grafos Planos
JAVA J.A.C..
Arboles M.C. José Andrés Vázquez FCC/BUAP
ARBOLES ESTRUCTURAS DE DATOS.
Pilas y Colas Estructuras de Datos.
TDA PILA ESTRUCTURAS DE DATOS.
Árboles Binarios Estructuras de Datos.
LISTA DOBLEMENTE ENLAZADA
Dinamismo y Contenedores Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires (C++ Avanzado) Depto. de Computación Algoritmos y Estructuras.
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
Grafos..
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Unidad 4: LISTAS.
Punteros, referencias Listas enlazadas Arboles
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
INSTITUTO TECNOLOGICO DE APIZACO
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.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
M.C. Meliza Contreras González
Laboratorio de programación
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
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.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Estructuras de datos y algoritmos
Transcripción de la presentación:

Oscar Bedoya. 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 23 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 dato siguiente 99 dato siguiente

Listas enlazadas Lista enlazada con 3 nodos. Los nodos tienen datos de tipo entero. 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 oscar kate sarah Lista enlazada con 3 nodos. Los nodos tienen datos de tipo String. 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?

Listas enlazadas Definición E A RE 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.

Listas enlazadas Insertar nodo al inicio( La lista está vacía ) W 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 Insertar nodo al inicio( La lista no está vací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 AW

Listas enlazadas Eliminar nodo al inicio AW 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 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 class Nodo{ Object dato; Nodo siguiente; Nodo(Object o) { dato=o; siguiente=null; } Nodo(Object o, Nodo n) { dato=o; siguiente=n; }

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); }... }

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

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 void insertar(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; }

Listas enlazadas 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 if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; } else { nuevo=new Nodo(o); nuevo.siguiente=cabecera.siguiente; cabecera.siguiente=nuevo; }

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

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; }

Listas enlazadas