SlideShare una empresa de Scribd logo
1 de 17
Lista doblemente
enlazada



                   1
Nodo
public class Nodo {
  private int data; // al macena el dato
  private Nodo sig; //”liga” al próximo nodo
  private Nodo ant; // ”liga” al anterior nodo
}

                   ant               sig




                                                 2
Operaciones de una lista doblemente enlazada

   Añadir o insertar elementos.
   Buscar elementos.
   Borrar elementos.
   Moverse a través de la lista, siguiente y anterior.


                 sig

                ant
  Inicio                                                  fin
                                                                3
Añadir elemento a una lista vacía




1-nodo = anterior y nodo=siguiente a NULL.




                                             4
Insertar nuevo nodo
Caso 1 Insertar nodo en la primera posición

  Nuevo
  nodo



insertaNodo( nodo)
1-. Nodo=siguiente // debe apuntar a Lista.
2-. Nodo=anterior y Lista=anterior.
3-. Lista=anterior //debe apuntar a nodo.
                       1
null
          2   Dato           Dato             Dato   …
                       3
                                                         5
Caso 2 Insertar un elemento en la última posición




InsertarUltimo(nodo)
1-. Nodo=siguiente y Lista=siguiente (NULL).
2-. Lista=siguiente // debe apuntar a nodo.
3-. Nodo=anterior //apuntará a Lista.
                                         2
       Dato       Dato        Dato
                                                    1
                                     3                  null
                                             Dato

                                                               6
Caso 3 Insertar un nodo en medio.




InsertarMedio (nodo )
1-. Nodo=siguiente apunte a lista=siguiente.
2-. Lista=siguiente //apunte a nodo.
3-. Nodo=anterior //apunte a lista.
4-. Nodo=siguiente=anterior // apunte a nodo.
           Dato         Dato                    Dato   null
                                            4
                            3       2            1
                                     Dato                     7
Eliminar
Caso 1 Eliminar el único nodo
En este caso, ese nodo será el apuntado por Lista.

1-. Eliminamos el nodo.
2-. Hacemos que Lista apunte a NULL.




                                                     8
Caso 2
Caso 2.1Eliminar el primer nodo



eliminaPrimer( nodo)
1-. Si nodo apunta a Lista // hacemos que Lista apunt
   Lista=siguiente.
2-. Hacemos que nodo=siguiente=anterior// apunte a
   NULL
3-. Borramos el nodo apuntado por nodo.



                                                        9
Caso 2.2 Eliminar un nodo intermedio


eliminaMedio(nodo)
1-. Si nodo apunta a Lista
         Lista=siguiente
2-. nodo= siguiente
3-. Nodo = anterior
4-. Borramos el nodo apuntado por nodo




                                         10
Caso 3 Eliminar el último nodo



eliminaUltimo(nodo)
1-. Si nodo apunta a Lista
        Lista=anterior.
2-nodo=anterior=siguiente apunte a NULL
3-. Borramos el nodo apuntado por nodo.



                                          11
Lista
Circular

           12
Circular
   Una lista circular es una lista lineal en la
    que el último nodo a punta al primero.




     inicio
                                            fin



                                                   13
Operaciones de una lista circular

las operaciones que se pueden realizar
  sobre las listas circulares :
   Añadir o insertar elementos.
   Buscar o localizar elementos.
   Borrar elementos.
   Moverse a través de la lista




                                         14
Insertar un elemento
Insertar elemento en la lista vacía
    lista apunta a nodo.
    lista->siguiente apunte a nodo.


Insertar elemento en una lista no vacía
1.   Hacemos que nodo = siguiente apunte a lista = siguiente.
2.   Después que lista = siguiente apunte a nodo.



                                                         15
Eliminar un elemento de la lista
        Eliminar el único nodo de la lista.
    1.     lista = siguiente mientras lista = siguiente sea distinto de
           nodo.
    2.     Hacemos que lista = siguiente apunte a nodo = siguiente.
    3.     Eliminamos el nodo.




        Eliminar un nodo en una lista circular con más de
         un elemento
    1.     Borramos el nodo apuntado por lista.

    2.     Hacemos que lista valga NULL.
                                                                          16
Eliminar un elemento de la lista
   Caso general
    1.   Copiamos el contenido del nodo = siguiente sobre el contenido
         de nodo.
    2.   Hacemos que nodo = siguiente apunte a nodo = siguiente =
         siguiente.
    3.   Eliminamos nodo = siguiente.
    4.   Si lista es el nodo = siguiente, hacemos lista = nodo.




                                                                    17

Más contenido relacionado

La actualidad más candente

Clase Derivada I
Clase Derivada  IClase Derivada  I
Clase Derivada ILiliSa28
 
Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacionGabriely Peña
 
Estructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cEstructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cCarlosRamsesGp
 

La actualidad más candente (7)

Derivadas exam2
Derivadas exam2Derivadas exam2
Derivadas exam2
 
Clase Derivada I
Clase Derivada  IClase Derivada  I
Clase Derivada I
 
Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacion
 
Estructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cEstructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje c
 
Lista simple
Lista simpleLista simple
Lista simple
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
Listas
ListasListas
Listas
 

Destacado (8)

Crucigrama
CrucigramaCrucigrama
Crucigrama
 
Crucigrama
CrucigramaCrucigrama
Crucigrama
 
Foroweb
ForowebForoweb
Foroweb
 
Tics
TicsTics
Tics
 
Primer día de clase 3º primaria
Primer día de clase 3º primariaPrimer día de clase 3º primaria
Primer día de clase 3º primaria
 
Principios geograficos
Principios geograficosPrincipios geograficos
Principios geograficos
 
Necesidades, bienes y servicios(Economia)
Necesidades, bienes y servicios(Economia)Necesidades, bienes y servicios(Economia)
Necesidades, bienes y servicios(Economia)
 
Leyes De Lógica
Leyes De LógicaLeyes De Lógica
Leyes De Lógica
 

Similar a Estructuraskp

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
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datosmariajuly
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos linealesMoises Medina
 
Estructura de datos evidencias
Estructura de datos evidenciasEstructura de datos evidencias
Estructura de datos evidenciaslenithoz
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datosvanessa peñafiel
 
UNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IUNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IJULIO
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesMago Julio Cesar
 
Implementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxImplementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxRafael nin
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxlicredesysistemas
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxlicredesysistemas
 

Similar a Estructuraskp (20)

Sesion_09.pptx
Sesion_09.pptxSesion_09.pptx
Sesion_09.pptx
 
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
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Estructura de datos evidencias
Estructura de datos evidenciasEstructura de datos evidencias
Estructura de datos evidencias
 
Teoria de listas
Teoria de listasTeoria de listas
Teoria de listas
 
Lista enlazada
Lista enlazadaLista enlazada
Lista enlazada
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datos
 
UNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IUNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{I
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas Circulares
 
Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02
 
Implementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxImplementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptx
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptx
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptx
 
Listas
ListasListas
Listas
 
05 listas1 t2018
05 listas1 t201805 listas1 t2018
05 listas1 t2018
 
universidad F. T.
universidad F. T.universidad F. T.
universidad F. T.
 

Estructuraskp

  • 2. Nodo public class Nodo { private int data; // al macena el dato private Nodo sig; //”liga” al próximo nodo private Nodo ant; // ”liga” al anterior nodo } ant sig 2
  • 3. Operaciones de una lista doblemente enlazada  Añadir o insertar elementos.  Buscar elementos.  Borrar elementos.  Moverse a través de la lista, siguiente y anterior. sig ant Inicio fin 3
  • 4. Añadir elemento a una lista vacía 1-nodo = anterior y nodo=siguiente a NULL. 4
  • 5. Insertar nuevo nodo Caso 1 Insertar nodo en la primera posición Nuevo nodo insertaNodo( nodo) 1-. Nodo=siguiente // debe apuntar a Lista. 2-. Nodo=anterior y Lista=anterior. 3-. Lista=anterior //debe apuntar a nodo. 1 null 2 Dato Dato Dato … 3 5
  • 6. Caso 2 Insertar un elemento en la última posición InsertarUltimo(nodo) 1-. Nodo=siguiente y Lista=siguiente (NULL). 2-. Lista=siguiente // debe apuntar a nodo. 3-. Nodo=anterior //apuntará a Lista. 2 Dato Dato Dato 1 3 null Dato 6
  • 7. Caso 3 Insertar un nodo en medio. InsertarMedio (nodo ) 1-. Nodo=siguiente apunte a lista=siguiente. 2-. Lista=siguiente //apunte a nodo. 3-. Nodo=anterior //apunte a lista. 4-. Nodo=siguiente=anterior // apunte a nodo. Dato Dato Dato null 4 3 2 1 Dato 7
  • 8. Eliminar Caso 1 Eliminar el único nodo En este caso, ese nodo será el apuntado por Lista. 1-. Eliminamos el nodo. 2-. Hacemos que Lista apunte a NULL. 8
  • 9. Caso 2 Caso 2.1Eliminar el primer nodo eliminaPrimer( nodo) 1-. Si nodo apunta a Lista // hacemos que Lista apunt Lista=siguiente. 2-. Hacemos que nodo=siguiente=anterior// apunte a NULL 3-. Borramos el nodo apuntado por nodo. 9
  • 10. Caso 2.2 Eliminar un nodo intermedio eliminaMedio(nodo) 1-. Si nodo apunta a Lista Lista=siguiente 2-. nodo= siguiente 3-. Nodo = anterior 4-. Borramos el nodo apuntado por nodo 10
  • 11. Caso 3 Eliminar el último nodo eliminaUltimo(nodo) 1-. Si nodo apunta a Lista Lista=anterior. 2-nodo=anterior=siguiente apunte a NULL 3-. Borramos el nodo apuntado por nodo. 11
  • 13. Circular  Una lista circular es una lista lineal en la que el último nodo a punta al primero. inicio fin 13
  • 14. Operaciones de una lista circular las operaciones que se pueden realizar sobre las listas circulares :  Añadir o insertar elementos.  Buscar o localizar elementos.  Borrar elementos.  Moverse a través de la lista 14
  • 15. Insertar un elemento Insertar elemento en la lista vacía  lista apunta a nodo.  lista->siguiente apunte a nodo. Insertar elemento en una lista no vacía 1. Hacemos que nodo = siguiente apunte a lista = siguiente. 2. Después que lista = siguiente apunte a nodo. 15
  • 16. Eliminar un elemento de la lista  Eliminar el único nodo de la lista. 1. lista = siguiente mientras lista = siguiente sea distinto de nodo. 2. Hacemos que lista = siguiente apunte a nodo = siguiente. 3. Eliminamos el nodo.  Eliminar un nodo en una lista circular con más de un elemento 1. Borramos el nodo apuntado por lista. 2. Hacemos que lista valga NULL. 16
  • 17. Eliminar un elemento de la lista  Caso general 1. Copiamos el contenido del nodo = siguiente sobre el contenido de nodo. 2. Hacemos que nodo = siguiente apunte a nodo = siguiente = siguiente. 3. Eliminamos nodo = siguiente. 4. Si lista es el nodo = siguiente, hacemos lista = nodo. 17