LISTA DOBLEMENTE ENLAZADA - PowerPoint PPT Presentation

About This Presentation
Title:

LISTA DOBLEMENTE ENLAZADA

Description:

Title: Presentaci n de PowerPoint Author: Oscar F. Bedoya Last modified by: Leydi Created Date: 1/26/2003 3:23:51 PM Document presentation format – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 18
Provided by: Osc137
Category:

less

Transcript and Presenter's Notes

Title: LISTA DOBLEMENTE ENLAZADA


1
LISTA DOBLEMENTE ENLAZADA

2
Lista doblemente enlazada Definición
Una lista doblemente enlazada es una colección de
elementos llamados nodosDE Un nodoDE tiene tres
campos un campo izquierda, un campo dato y un
campo derecha. Los campos izquierda y derecha son
apuntadores a los nodos ubicados en el lado
izquierdo y el derecho de cada nodo
3
Lista doblemente enlazada

51
99
izq. dato der.
izq. dato der.
izq. dato der.
  • Se mantiene un nodoDE cabecera, cuyo campo
    izquierda apunta a null, no tiene valor y cuyo
    campo derecha apunta al nodoDE que tiene el
    primer dato
  • El campo derecha del ultimo nodoDE apunta a null

4
Lista doblemente enlazada Definición
Una lista doblemente enlazada es una estructura
de datos dinámica que permite almacenar cualquier
cantidad de nodos. Tiene la ventaja de que
estando en cualquier nodo se puede acceder al
nodo que está tanto a la izquierda como a la
derecha
5
Lista doblemente enlazada Definición
  • Las operaciones sobre una lista doblemente
    enlazada son
  • Crear listaDE
  • Insertar nodo al inicio
  • Eliminar nodo al inicio
  • Imprimir datos
  • Es una listaDE vacía?

6
Lista doblemente enlazada
  • Crear lista doblemente enlazada


Al crear una listaDE, se crea el nodo
cabecera. El nodo cabecera tiene como dato,
izquierda y derecha a null.
7
Lista doblemente enlazada
  • Insertar nodo al inicio( La listaDE está vacía)

  • Se crea un nuevo nodoDE con el dato que se desee
    colocar, campo izquierda apuntado al nodo
    cabecera y campo derecha apuntando a null
  • El campo derecha del nodo cabecera pasa de ser
    null a ser el nodo que estamos insertado


9
8
Lista doblemente enlazada
  • Insertar nodo al inicio( La listaDE no está vacía)


9

1
9
  • Se crea un nuevo nodo con el dato que se desee
    colocar, campo izquierda apuntando al nodo
    cabecera y campo derecha apuntado al nodo que
    apunta el campo derecha del nodo cabecera
  • Al campo izquierda del nodo apuntado por derecha
    del nodo cabecera se le asigna el nodo que
    estamos insertando
  • Al nodo cabecera se le asigna como derecha al
    nodo que estamos insertando

9
Lista doblemente enlazada
  • Eliminar nodo al inicio


1
9

9
  • Al nodo cabecera se le asigna como derecha, la
    derecha del primer nodo
  • Al campo izquierda del segundo nodo se le asigna
    como izquierda el nodo cabecera (Solo si hay más
    de un nodo)

10
Lista doblemente enlazada
  • Imprimir datos

11
Lista doblemente enlazada
  • Está una listaDE vacía?

Cuando la lista está vacía el campo derecha de la
cabecera es null

12
Lista doblemente enlazada
public class NodoDE NodoDE izquierda
Object dato NodoDE derecha public
NodoDE(Object o) izquierda null dato
o derecha null
13
Lista doblemente enlazada
  • Crear listaDE
  • Al crear una listaDE, se crea el nodo cabecera.
  • El nodo cabecera tiene como dato, izquierda y
    derecha a null.

class ListaC Nodo cabecera ListaC()
cabeceranew Nodo(null)
14
Lista doblemente enlazada
public boolean esVacia( ) if
(cabecera.derechanull) return true
else return false
  • Está una lista circular vacía?
  • Cuando la lista está vacía el campo derecha de la
    cabecera es null

15
Lista doblemente enlazada
  • Insertar nodo al inicio
  • ( La listaDE está vacía)
  • Se crea un nuevo nodoDE con el dato que se desee
    colocar, campo izquierda apuntado al nodo
    cabecera y campo derecha apuntando a null
  • El campo derecha del nodo cabecera pasa de ser
    null a ser el nodo que estamos insertado

public void insertarDE(Object o) if
(esVacia()) NodoDE nuevo new NodoDE(o)
cabecera.derechanuevo
nuevo.izquierdacabecera
nuevo.derechanull
16
Lista doblemente enlazada
  • Insertar nodo al inicio
  • ( La listaDE no está vacía)
  • Se crea un nuevo nodo con el dato que se desee
    colocar, campo izquierda apuntando al nodo
    cabecera y campo derecha apuntado al nodo que
    apunta el campo derecha del nodo cabecera
  • Al campo izquierda del nodo apuntado por derecha
    del nodo cabecera se le asigna el nodo que
    estamos insertando
  • Al nodo cabecera se le asigna como derecha al
    nodo que estamos insertando

else NodoDE nuevo new NodoDE(o)
NodoDE primerocabecera.derecha
nuevo.derechacabecera.derecha
nuevo.izquierdacabecera primero.izquierdan
uevo cabecera.derechanuevo
17
Lista doblemente enlazada
public void eliminarDE() NodoDE
eliminarcabecera.derecha NodoDE
derechaEliminareliminar.derecha
if(esVacia()) System.out.println("LA
LISTADE ESTA VACIA") else
cabecera.derechaeliminar.derecha
derechaEliminar.izquierdacabecera
  • Eliminar nodo al inicio
  • Al nodo cabecera se le asigna como derecha, la
    derecha del primer nodo
  • Al campo izquierda del segundo nodo se le asigna
    como izquierda el nodo cabecera
Write a Comment
User Comments (0)
About PowerShow.com