SlideShare ist ein Scribd-Unternehmen logo
1 von 23
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;            Declaración de las
                         variables primero y
Nodo ultimo;             ultimo




  primero=null;      Inicializar primero y
                     ultimo
  ultimo=null;
Método modificado
    public boolean estavacia(){                            para que los nodos
             return primero==null;                         se inserten a la
       }                                                   derecha
       public void insertarUltimo (int dato){
       //crea un nuevo nodo
             NodoLista nuevoNodo=new NodoLista( dato);

             if(primero==null){                          nuevoNodo.siguiente
                    nuevoNodo.siguiente=primero;         será igual a null en
Se le agrega         primero=nuevoNodo;                  vez de primero
una                ultimo=nuevoNodo;
condicion
para que     }
inserte a la else{
                        nuevoNodo.siguiente=null;
derecha
                    ultimo.siguiente=nuevoNodo;
                        ultimo=nuevoNodo;
             }
        }
Método para
                                       imprimir

public void desplegarLista(){
       Nodoactual=primero;
       while(actual!=null){
             System.out.println(“”+actual.dato);
             actual=actual.siguiente;

      }

  }
do{
                     System.out.print("Introduce el dato del nodo");
                     System.out.flush();
Invocación al        dato=Integer.parseInt(entrada.readLine());
método
insertarUltimo         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();
De manera gráfica sería:


id   dato      opc    InsertarPrimero(id, dato)
                      Primero y Ultimo
1    21.5       1     21.5    1
                                      null
                     Primero            Ultimo
2    15.8       1      21.5       1      15.8 2
                                                  null
                      Primero                             Ultimo
3    12.4       1      21.5 1            15.8 2    12.4       3
                                                                  null
                      Primero                                            Ultimo
4    40.2       0      21.5       1     15.8 2    12.4    3       40.2   4


                                                                             null
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

Weitere ähnliche Inhalte

Was ist angesagt?

Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Eli Diaz
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10chrisflores001
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadasguestbd36f7
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estaticaJoeCorp
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilasgeova666
 
Estructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colasEstructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colasIARINAIA
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicasPatriciaU
 

Was ist angesagt? (19)

Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Pilas
PilasPilas
Pilas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Colas
ColasColas
Colas
 
Pilas
PilasPilas
Pilas
 
Python Pilas y Colas
Python Pilas y ColasPython Pilas y Colas
Python Pilas y Colas
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
PILAS
PILASPILAS
PILAS
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
 
Fila,pila y cola ..
Fila,pila y cola ..Fila,pila y cola ..
Fila,pila y cola ..
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estatica
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 
Estructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colasEstructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colas
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 

Ähnlich wie Listasenlazadas 100517143015-phpapp02

135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptxiq72024016
 
Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas pptAby Castillo
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Partecarpio
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completoBoris Salleg
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datoscharlezgt
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a ParteUVM
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Edward Mejia Gomez
 
Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcialCerdorock
 
Jyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc X
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337CJrosario2
 
Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617Johannadotel
 

Ähnlich wie Listasenlazadas 100517143015-phpapp02 (20)

Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx
 
Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas ppt
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Lista simple
Lista simpleLista simple
Lista simple
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
6-Pilas.pdf
6-Pilas.pdf6-Pilas.pdf
6-Pilas.pdf
 
Lista enlazada
Lista enlazadaLista enlazada
Lista enlazada
 
2- TDA Listas
2- TDA Listas2- TDA Listas
2- TDA Listas
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte
 
Sesion_09.pptx
Sesion_09.pptxSesion_09.pptx
Sesion_09.pptx
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcial
 
Jyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilas
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617
 

Mehr von Henrry Eliseo Navarro Chinchilla (20)

Is
IsIs
Is
 
Bucarasica
BucarasicaBucarasica
Bucarasica
 
Bucarasica
BucarasicaBucarasica
Bucarasica
 
5 a bd_servidor
5 a bd_servidor5 a bd_servidor
5 a bd_servidor
 
Introducion uml
Introducion umlIntroducion uml
Introducion uml
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Apuntes2
Apuntes2Apuntes2
Apuntes2
 
Apuntes2
Apuntes2Apuntes2
Apuntes2
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Gestionde fichero
Gestionde ficheroGestionde fichero
Gestionde fichero
 
Metodos en php
Metodos en phpMetodos en php
Metodos en php
 
Grafos
GrafosGrafos
Grafos
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7
 
Exploration network chapter11
Exploration network chapter11Exploration network chapter11
Exploration network chapter11
 
Exploration network chapter10
Exploration network chapter10Exploration network chapter10
Exploration network chapter10
 
Exploration network chapter9
Exploration network chapter9Exploration network chapter9
Exploration network chapter9
 
Exploration network chapter8
Exploration network chapter8Exploration network chapter8
Exploration network chapter8
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7
 
Fichero
FicheroFichero
Fichero
 
Entrada salida
Entrada salidaEntrada salida
Entrada salida
 

Listasenlazadas 100517143015-phpapp02

  • 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; Declaración de las variables primero y Nodo ultimo; ultimo primero=null; Inicializar primero y ultimo ultimo=null;
  • 15. Método modificado public boolean estavacia(){ para que los nodos return primero==null; se inserten a la } derecha public void insertarUltimo (int dato){ //crea un nuevo nodo NodoLista nuevoNodo=new NodoLista( dato); if(primero==null){ nuevoNodo.siguiente nuevoNodo.siguiente=primero; será igual a null en Se le agrega primero=nuevoNodo; vez de primero una ultimo=nuevoNodo; condicion para que } inserte a la else{ nuevoNodo.siguiente=null; derecha ultimo.siguiente=nuevoNodo; ultimo=nuevoNodo; } }
  • 16. Método para imprimir public void desplegarLista(){ Nodoactual=primero; while(actual!=null){ System.out.println(“”+actual.dato); actual=actual.siguiente; } }
  • 17. do{ System.out.print("Introduce el dato del nodo"); System.out.flush(); Invocación al dato=Integer.parseInt(entrada.readLine()); método insertarUltimo 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();
  • 18. De manera gráfica sería: id dato opc InsertarPrimero(id, dato) Primero y Ultimo 1 21.5 1 21.5 1 null Primero Ultimo 2 15.8 1 21.5 1 15.8 2 null Primero Ultimo 3 12.4 1 21.5 1 15.8 2 12.4 3 null Primero Ultimo 4 40.2 0 21.5 1 15.8 2 12.4 3 40.2 4 null
  • 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.