ARTICULOS [Archivos][Arboles]

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


 

LISTAS ENLAZADAS DOBLES

INTRODUCCIÓN

Debido a que este tipo de estructuras es importante en computación, talvez pensando que son difíciles de implementar. Pero de ningún modo es compleja su implementación lo que si es útil y necesario de destacar que el programador debe de mantener suficiente disciplina para implementar. En la mayoría de las operaciones con Listas Enlazadas Dobles su código es de pocas líneas.

DEFINICIÓN

Una lista enlazada doble es una estructura que está compuesta generalmente de un conjunto de nodos. Este tipo de estructura consta de una serie de registros que no necesariamente son adyacentes en memoria, donde cada nodo tiene básicamente tres partes la primera llamada ANT (IZQ o Linki), la segunda llamada DATO (o Info) y la tercera llamada SIG (DER o Linkd).

REPRESENTACIÓN

Esta representación es similar a lo que maneja la maquina y lista enlazada.


ANT : Este campo contiene la dirección del anterior nodo(apuntador).
DATO: Este campo contiene los datos del nodo.
SIG : Este campo contiene la dirección del siguiente nodo(apuntador).


PROPIEDADES Y CARACTERÍSTICAS

§ Se dice que esta vacía si L = 0 = NULL =NIL.
§ Se dice que esta llena cuando no tengo nodos libres en Almacenamiento Base(Memoria de la PC).
§ Provoca error lo siguiente P->ANT o P->SIG, si P = NULL.


TIPOS

§ Lista Doble Enlazada Simple

En este tipo son similares a las listas simple, con la variación de que posee dos campos de apuntador sig y ant, con estos podremos recorrer los nodos de la lista, y el ultimo nodo apunta a NULL(_____).

§ Lista Doble Enlazada Circular

Similar al anterior pero con la característica principal de este tipo es que el sig del ultimo nodo apunta al primero tal como se describe en la gráfica (--------).

DECLARACION DE LISTAS EN “C”

LISTA
§ SIMPLE
struct nodito
{
  int dato;//Almacena la información o dato de nuestro nodo
  struct nodo *link;//Almacena la dirección del siguiente nodo
};
§ DOBLE
struct nodo
{
  struct nodo *ant;//Almacena la dirección del anterior nodo
  int dato;//Almacena la información o dato de nuestro nodo
  struct nodo *sig;//Almacena la dirección del siguiente nodo
};

§ MÚLTIPLES
struct nodo
{
  struct nodo *ant;//Almacena la dirección del anterior nodo
  struct nodito *sublista;//Almacena dirección de una lista simple
  struct nodo *sig;//Almacena la dirección del siguiente nodo
};

Descargue en

   
   
  1° 13/09/03
2° 02/11/03
EF 29/11/03