C/Visual C - Listas doblemente enlazadas

 
Vista:

Listas doblemente enlazadas

Publicado por Chino (4 intervenciones) el 06/04/2001 00:19:35
Alguien me puede ayudar con los metodos de eliminar y agregar objetos, de una lista que se encuentra doblememente enlazada.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Listas doblemente enlazadas

Publicado por Germán B. (143 intervenciones) el 06/04/2001 06:06:15
A ver, pongamos como ejemplo este tipo de dato como nodo de la lista:

typedef struct nodo {
char nombre[20];
struct nodo *anterior;
struct nodo *proximo;
} Nodo;

Y definamos los siguientes punteros:

Nodo *Actual, *Nuevo;

Supongamos que Actual apunta a uno de los nodos de la lista y queremos insertar un nuevo nodo, ya creado fuera de la lista, y por ahora apuntado por Nuevo.

Nuevo->proximo = Actual->proximo;
Nuevo->anterior = Actual;
Actual->proximo->anterior = Nuevo;
Actual->proximo = Nuevo;

Si queremos eliminar el objeto de la lista apuntado por Actual:

Actual->anterior->proximo = Actual->proximo;
Actual->proximo->anterior = Actual->anterior;
free(Actual);

Si dibujás los nodos y ponés flechas desde cada puntero a un nodo, vas a ver gráficamente por qué se hacen esos movimientos de punteros para agregar y eliminar.
G
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Listas doblemente enlazadas

Publicado por kikonmx (30 intervenciones) el 17/05/2001 10:43:55
Yo estoy escribiendo un pequeño documento acerca de eso, si deseas envíame un correo y cuando lo termine te lo mando para que lo veas a ver que te parece
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar