SlideShare una empresa de Scribd logo
Listas Simplemente Enlazadas María Luisa Velasco Ramírez
Listas Enlazadas Una representación enlazada de un grupo de elementos de un cierto tipo es una lista enlazada de nodos, es decir, una secuencia de nodos situados en la memoria dinámica y conectados entre sí 􀂆  Ejemplo: lista de enteros {4, 8, 5, 3, 2}
 
Como se ha visto, un nodo tiene dos atributos: El  dato, de tipo  genérico (para poder guardar cualquier tipo de objeto) Una referencia al nodo  siguiente.
public   class  Nodo {      int  dato; Nodo siguiente;      public  Nodo( int  dato) {          this .dato = dato;          this .siguiente =  null ;     } }
Una lista enlazada requiere, como mínimo, una referencia al primer nodo de la lista: Cuando la lista está vacía, el atributo  primero apunta a null: primero =  null;
public void ListaEnlazada() { primero=null; } public boolean estaVacia() { return primero==null; }
Operaciones básicas con listas Crear Lista Recorrido de la Lista  Inserción de un Elemento  Borrado de un Elemento  Búsqueda de un Elemento
Lo más eficiente es insertar al principio de la lista, pues tenemos una referencia al primer nodo Ejemplo: Se quiere insertar el elemento “1” en la siguiente lista:
public void insertarPrimero(int  dato) { //crea un nuevo Nodo Nodo nuevoNodo = new Nodo(dato); nuevoNodo.siguiente=primero; primero=nuevoNodo;
public void desplegarLista() { Nodo actual=primero; while (actual!= null) { System.out.println(“El dato es:”+actual.dato); actual= actual.siguiente; } }
Código para insertar nodos a la derecha
Para insertar nodos a la derecha, es necesario declarar e inicializar otra variable , en este caso es  último
Código ListaEnlazada   Nodo primero;   Nodo ultimo; primero=null; ultimo=null; Declaración de las variables primero y ultimo Inicializar primero y ultimo
public boolean estavacia(){ return primero==null; } public void insertarUltimo  (int  dato){ //crea un nuevo nodo NodoLista nuevoNodo=new NodoLista( dato); if(primero==null){   nuevoNodo.siguiente=primero;     primero=nuevoNodo; ultimo=nuevoNodo; } else{ nuevoNodo.siguiente=null; ultimo.siguiente=nuevoNodo; ultimo=nuevoNodo; } } Método modificado para que los nodos se inserten a la derecha nuevoNodo.siguiente será igual a null en vez de primero Se le agrega una condicion para que inserte a la derecha
public void desplegarLista(){ Nodoactual=primero; while(actual!=null){ System.out.println(“”+actual.dato); actual=actual.siguiente; } } Método para imprimir
do{ System.out.print("Introduce el dato del nodo"); System.out.flush(); dato=Integer.parseInt(entrada.readLine()); lista.insertarUltimo(dato); //insertar nodo a  la lista System.out.print("Deseas seguir insertando datos: SI=1, NO=0"); System.out.flush(); opc=Integer.parseInt(entrada.readLine()); }while(opc==1); lista.desplegarLista(); Invocación al método insertarUltimo
De manera gráfica sería: 21.5  1  15.8  2  21.5  1  12.4  3  15.8  2 21.5  1  40.2  4  12.4  3  15.8  2 21.5  1  null null null null Primero Primero Primero Primero Ultimo Ultimo Ultimo y Ultimo id dato opc InsertarPrimero(id, dato) 1 2 3 4 21.5 15.8 12.4 40.2 1 1 1 0
Eliminar nodo public NodoLista eliminarPrimero() { Nodo temp =  primero; primero = primero.siguiente; return temp; }
Tarea: Implementar en Java, un menú con las siguientes operaciones: A) Crear lista enlazada B) Insertar a la cabeza de la lista C) Insertar al final de la lista D) Borrar el elemento inicial de la lista E)Borrar el último elemento de la lista F) Desplegar los elementos de la lista Deben validar al borrar elementos de la lista que la lista no este vacía
Escribir un algoritmo que inserte un  específico elemento de la lista Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla, en caso de no encontrarlo, mandar el mensaje correspondiente. Escribir un algoritmo que borre un elemento específico de la lista. Ver ejemplo de la diapositiva siguiente.
Eliminar Nodos
Listas enlazadas vs. Arreglos

Más contenido relacionado

PPT
Apuntadores y listas
PPT
Listas Doblemente Enlazadas y Listas Circulares
PPTX
Estructura de Datos (LISTAS, COLAS, PILAS)
PPT
Listas Pilas Colas
PDF
Estructura de datos. listas, pilas y colas
DOCX
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
PPTX
Funcionamiento de un pila
PPTX
Diapositiva de l estructura de datos
Apuntadores y listas
Listas Doblemente Enlazadas y Listas Circulares
Estructura de Datos (LISTAS, COLAS, PILAS)
Listas Pilas Colas
Estructura de datos. listas, pilas y colas
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Funcionamiento de un pila
Diapositiva de l estructura de datos

La actualidad más candente (19)

PPTX
Estructura de datos: lista, pilas y colas
DOCX
Algoritmo de listas simples completo
PPT
Listas, pilas y colas
DOCX
Codigo para implementar pilas en java
PPTX
PPTX
Listas, pilas y colas
PPTX
Lista,pilas y columnas
PPT
Listas enlazadas
PPT
Pilas En C++
PPT
Estructuras dinámicas
PPTX
Presentacion de Listas, Pilas y Colas
PPTX
Estructura de datos listas, pilas y colas
PPTX
Python Pilas y Colas
PPTX
Fila,pila y cola ..
PPTX
Estructura de datos I pilas
PPTX
PPT
Estructura datos pilas y colas
Estructura de datos: lista, pilas y colas
Algoritmo de listas simples completo
Listas, pilas y colas
Codigo para implementar pilas en java
Listas, pilas y colas
Lista,pilas y columnas
Listas enlazadas
Pilas En C++
Estructuras dinámicas
Presentacion de Listas, Pilas y Colas
Estructura de datos listas, pilas y colas
Python Pilas y Colas
Fila,pila y cola ..
Estructura de datos I pilas
Estructura datos pilas y colas
Publicidad

Destacado (20)

PDF
Grafos avanzado
PPTX
1. teoría listas enlazadas
PPTX
Estructuras de datos
PPTX
Pilas en Java
PDF
Introducción a la programación y la informática. Tema 10
PPT
PPT
áRboles binarios
PDF
Tipos abstractos de datos
PPTX
Java pilas (Stacks) y colas (Queues)
PPT
PPT
programacion orientada a objetos
PPT
Utpl Contabilidad Comercial
PPTX
Cuenta contable
PPTX
Historia de la contabilidad
DOC
Asientos de cierre--pasos_2012_
PPS
Sistema contable
PPT
Resumen
PPTX
Estados Financieros y Análisis de Punto de Equilibrio
PPT
Contabilidad inventario
PPSX
Elementos de los estados financieros
Grafos avanzado
1. teoría listas enlazadas
Estructuras de datos
Pilas en Java
Introducción a la programación y la informática. Tema 10
áRboles binarios
Tipos abstractos de datos
Java pilas (Stacks) y colas (Queues)
programacion orientada a objetos
Utpl Contabilidad Comercial
Cuenta contable
Historia de la contabilidad
Asientos de cierre--pasos_2012_
Sistema contable
Resumen
Estados Financieros y Análisis de Punto de Equilibrio
Contabilidad inventario
Elementos de los estados financieros
Publicidad

Similar a Listas enlazadas (20)

PPT
Listas enlazadas
PPT
Listasenlazadas 100517143015-phpapp02
PPTX
Listas
PPTX
Estructura de datos
PPTX
135042409-Estructuras-dinamicas-ppt.pptx
PPTX
Lista Enlazada - Grupo K system ing.pptx
PPT
Estructuras dinamicas ppt
PDF
Lista enlazada
PDF
8 Listas Encadenadas 2a Parte
 
PPTX
Sesion_09.pptx
DOC
Lista simple
PPTX
Listas pilas colas_carlos_rosario10-1337
PPT
ED Listas, Pilas y Colas
PPTX
Listas pilascolas edward.mejia-10-1314
PPTX
Listas doblemente enlazadas
PPTX
Estructura dedatos listas pilas y colas 12-0617
PDF
Pilas Dylan Medina.pdf
PPTX
Implementación-de-pilas-por-medio-de-listas.pptx
PPTX
Listas, pilas y colas
PPTX
Estructura de datos I Primera Parte
Listas enlazadas
Listasenlazadas 100517143015-phpapp02
Listas
Estructura de datos
135042409-Estructuras-dinamicas-ppt.pptx
Lista Enlazada - Grupo K system ing.pptx
Estructuras dinamicas ppt
Lista enlazada
8 Listas Encadenadas 2a Parte
 
Sesion_09.pptx
Lista simple
Listas pilas colas_carlos_rosario10-1337
ED Listas, Pilas y Colas
Listas pilascolas edward.mejia-10-1314
Listas doblemente enlazadas
Estructura dedatos listas pilas y colas 12-0617
Pilas Dylan Medina.pdf
Implementación-de-pilas-por-medio-de-listas.pptx
Listas, pilas y colas
Estructura de datos I Primera Parte

Más de María Luisa Velasco (20)

DOCX
Respaldando bd
PDF
Guia eejerciciospracticos
PPTX
Ejercicios normalización
PPT
Normalizacion
PDF
Guia eejerciciospracticos
PDF
Guia eejerciciospracticos
PDF
Guia eejerciciospracticos
PPT
Modulos sgbd
PDF
Guia eejerciciospracticos
DOC
Induccion fundbd2012
DOC
Induccion fundbd2012
PDF
Guia eejerciciospracticos
PPTX
Paradigmas de programación
DOCX
Proyecto final de algoritmica
DOCX
Ejercicios arreglos4
DOCX
Ejercicios arreglos2
PPT
Seguridad bd
DOCX
Ejercicios3parte
Respaldando bd
Guia eejerciciospracticos
Ejercicios normalización
Normalizacion
Guia eejerciciospracticos
Guia eejerciciospracticos
Guia eejerciciospracticos
Modulos sgbd
Guia eejerciciospracticos
Induccion fundbd2012
Induccion fundbd2012
Guia eejerciciospracticos
Paradigmas de programación
Proyecto final de algoritmica
Ejercicios arreglos4
Ejercicios arreglos2
Seguridad bd
Ejercicios3parte

Último (20)

PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
PDF
2.0 Introduccion a processing, y como obtenerlo
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
DOC
Manual de Convivencia 2025 actualizado a las normas vigentes
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
Introducción a la historia de la filosofía
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PLANES DE área ciencias naturales y aplicadas
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
V UNIDAD - PRIMER GRADO. del mes de agosto
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Ernst Cassirer - Antropologia Filosofica.pdf
TOMO II - LITERATURA.pd plusenmas ultras
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
2.0 Introduccion a processing, y como obtenerlo
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Tomo 1 de biologia gratis ultra plusenmas
Doctrina 1 Soteriologuia y sus diferente
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Presentación de la Cetoacidosis diabetica.pptx
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
Manual de Convivencia 2025 actualizado a las normas vigentes
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Introducción a la historia de la filosofía
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf

Listas enlazadas

  • 1. Listas Simplemente Enlazadas María Luisa Velasco Ramírez
  • 2. Listas Enlazadas Una representación enlazada de un grupo de elementos de un cierto tipo es una lista enlazada de nodos, es decir, una secuencia de nodos situados en la memoria dinámica y conectados entre sí 􀂆 Ejemplo: lista de enteros {4, 8, 5, 3, 2}
  • 3.  
  • 4. Como se ha visto, un nodo tiene dos atributos: El dato, de tipo genérico (para poder guardar cualquier tipo de objeto) Una referencia al nodo siguiente.
  • 5. public class Nodo {     int dato; Nodo siguiente;     public Nodo( int dato) {         this .dato = dato;         this .siguiente = null ;     } }
  • 6. Una lista enlazada requiere, como mínimo, una referencia al primer nodo de la lista: Cuando la lista está vacía, el atributo primero apunta a null: primero = null;
  • 7. public void ListaEnlazada() { primero=null; } public boolean estaVacia() { return primero==null; }
  • 8. Operaciones básicas con listas Crear Lista Recorrido de la Lista Inserción de un Elemento Borrado de un Elemento Búsqueda de un Elemento
  • 9. Lo más eficiente es insertar al principio de la lista, pues tenemos una referencia al primer nodo Ejemplo: Se quiere insertar el elemento “1” en la siguiente lista:
  • 10. public void insertarPrimero(int dato) { //crea un nuevo Nodo Nodo nuevoNodo = new Nodo(dato); nuevoNodo.siguiente=primero; primero=nuevoNodo;
  • 11. public void desplegarLista() { Nodo actual=primero; while (actual!= null) { System.out.println(“El dato es:”+actual.dato); actual= actual.siguiente; } }
  • 12. Código para insertar nodos a la derecha
  • 13. Para insertar nodos a la derecha, es necesario declarar e inicializar otra variable , en este caso es último
  • 14. Código ListaEnlazada Nodo primero; Nodo ultimo; primero=null; ultimo=null; Declaración de las variables primero y ultimo Inicializar primero y ultimo
  • 15. public boolean estavacia(){ return primero==null; } public void insertarUltimo (int dato){ //crea un nuevo nodo NodoLista nuevoNodo=new NodoLista( dato); if(primero==null){ nuevoNodo.siguiente=primero; primero=nuevoNodo; ultimo=nuevoNodo; } else{ nuevoNodo.siguiente=null; ultimo.siguiente=nuevoNodo; ultimo=nuevoNodo; } } Método modificado para que los nodos se inserten a la derecha nuevoNodo.siguiente será igual a null en vez de primero Se le agrega una condicion para que inserte a la derecha
  • 16. public void desplegarLista(){ Nodoactual=primero; while(actual!=null){ System.out.println(“”+actual.dato); actual=actual.siguiente; } } Método para imprimir
  • 17. do{ System.out.print("Introduce el dato del nodo"); System.out.flush(); dato=Integer.parseInt(entrada.readLine()); lista.insertarUltimo(dato); //insertar nodo a la lista System.out.print("Deseas seguir insertando datos: SI=1, NO=0"); System.out.flush(); opc=Integer.parseInt(entrada.readLine()); }while(opc==1); lista.desplegarLista(); Invocación al método insertarUltimo
  • 18. De manera gráfica sería: 21.5 1 15.8 2 21.5 1 12.4 3 15.8 2 21.5 1 40.2 4 12.4 3 15.8 2 21.5 1 null null null null Primero Primero Primero Primero Ultimo Ultimo Ultimo y Ultimo id dato opc InsertarPrimero(id, dato) 1 2 3 4 21.5 15.8 12.4 40.2 1 1 1 0
  • 19. Eliminar nodo public NodoLista eliminarPrimero() { Nodo temp = primero; primero = primero.siguiente; return temp; }
  • 20. Tarea: Implementar en Java, un menú con las siguientes operaciones: A) Crear lista enlazada B) Insertar a la cabeza de la lista C) Insertar al final de la lista D) Borrar el elemento inicial de la lista E)Borrar el último elemento de la lista F) Desplegar los elementos de la lista Deben validar al borrar elementos de la lista que la lista no este vacía
  • 21. Escribir un algoritmo que inserte un específico elemento de la lista Escribir un algoritmo que busque un elemento en la lista y lo visualice en pantalla, en caso de no encontrarlo, mandar el mensaje correspondiente. Escribir un algoritmo que borre un elemento específico de la lista. Ver ejemplo de la diapositiva siguiente.