Listas Dobles Enlazadas C++

* Es un tipo de lista enlazada que permite moverse hacia delante y hacia atras.
* Cada nodo de una lista doblemente enlazada tiene dos enlaces, ademas de los campos de datos. Un enlace, el derecho, se utiliza para navegar la lista hacia delante. El otro enlace, el isquierdo, se utiliza para navegar la lista hacia atras.

Principales ventajas:
 1. Permite caminar en las dos direcciones de la lista.
 2. Inserción y eliminación de elementos son realizados con más facilidad.

Principales problemas:
 • Mayor espacio reservado
 • Manipulación de un puntero extra Implementación (Dinámica)

Por simplicidad los elementos almacenados serán números enteros. Los elementos serán insertados de forma ordenada. (Fig 4.2)La operación de inserción de un nuevo elemento en la posición anterior al elemento actual puede ser descrito como sigue (suponiendo que actual no es el primer elemento de la lista)
p:puntero de cabecera
f:puntero final de la lista
//ambos punteros se pueden declarar como variables globales
FUNCION INSERTAR - LISTA DOBLE
insertar_di()
{
nodo *q;
char op;
  do
  {
      clrscr();
      q=new(nodo);
      cout<<"ingrese dato: ";
      cin>>q->inf;
      q->sig=p;
      q->ant=NULL;
      if(p==NULL)
      {
         f=q;
      }
      else
      {
         p->ant=q;
      }
      p=q;
      cout<<"mas datos";
      cin>>op;
  }while(op=='s' || op=='S');
}

1 comentarios:

{ Eduardblue } at: 25 de octubre de 2012, 18:05 dijo...

me podrias enviar el codigo amigo, gerardo-fans@hotmail.com (o j.eduardo.morales@hotmail.com) te lo agradecere. :-D

Publicar un comentario en la entrada