Está en la página 1de 12

Listas Doblemente Enlazadas

Ing. Julio Csar Caneln Rangel

Listas Doblemente Enlazadas


typedef struct l_doble { int numero; struct l_doble *prox; struct l_doble *ant; } L_DOBLE; L_DOBLE *p;
p

NULL

NULL

Estructuras dinmicas

Ing. Julio Csar Caneln Rangel

Insertar un elemento en la lista


nue

NULL

NULL

NULL p

NULL

NULL

NULL

Ing. Julio Csar Caneln Rangel

Insertar un elemento en la lista (al final)


nue

NULL

10

NULL

NULL p

NULL

NULL

10

NULL

Ing. Julio Csar Caneln Rangel

Insertar un elemento en la lista (al inicio)


nue

NULL

10

NULL

NULL

NULL

NULL

NULL

10 p

Ing. Julio Csar Caneln Rangel

Eliminar un elemento de un nodo


NULL 3 9 12 NULL Se busca el nodo a borrar

NULL

12

NULL

Movemos los punteros

NULL 3 12 NULL 9

Liberamos memoria con Free() o delete

Ing. Julio Csar Caneln Rangel

Movimiento/bsqueda a travs de la lista


p paux
NULL 3 9 10 11 12 NULL

paux->ant->ant paux->ant

paux
paux->prox

Ing. Julio Csar Caneln Rangel

Listas Circulares

Ing. Julio Csar Caneln Rangel

Listas Circulares
typedef struct l_circular { int numero; struct l_circular *prox; struct l_circular *ant; } L_CIRCULAR; L_DOBLE *p;
p

Estructuras dinmicas

Ing. Julio Csar Caneln Rangel

Insertar un elemento en la lista


nue NULL p 7 NULL

Ing. Julio Csar Caneln Rangel

Insertar un elemento en la lista (al final)


nue NULL p 10 NULL

10

Ing. Julio Csar Caneln Rangel

Insertar un elemento en la lista (al inicio)


nue NULL p 1 NULL

Ing. Julio Csar Caneln Rangel

También podría gustarte