Page 313

4 Estructuras de datos: memoria din´amica

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

aux lista

ant

info

sig

ant

3

info

sig

ant

8

info

sig

2

2. Hacemos que el siguiente del que antecede a aux sea NULL: (aux ->ant->sig=NULL): aux lista

ant

info

sig

ant

3

info

sig

ant

8

info

sig

2

3. Y liberamos el nodo apuntado por aux : aux lista

ant

info

sig

3

ant

info

sig

8

lista doble.c 1 2 3

TipoDLista borra_primera_ocurrencia(TipoDLista lista, int valor ) { struct DNodo * aux ;

4

for (aux =lista; aux !=NULL; aux =aux ->sig) if (aux ->info == valor ) break;

5 6 7 8

if (aux == NULL) // No se encontr´ o. return lista;

9 10 11

if (aux ->ant == NULL) // Es el primero de la lista. lista = aux ->sig; else aux ->ant->sig = aux ->sig;

12 13 14 15 16

if (aux ->sig != NULL) // No es el u ´ltimo de la lista. aux ->sig->ant = aux ->ant;

17 18 19

free(aux );

20 21

return lista;

22 23

}

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . · 287 Dise˜ na una funci´ on que permita efectuar la inserci´on ordenada de un elemento en una lista con enlace doble que est´ a ordenada. · 288 Dise˜ na una funci´ on que permita concatenar dos listas doblemente enlazadas. La funci´on recibir´a las dos listas y devolver´ a una lista nueva con una copia de la primera seguida de una copia de la segunda. · 289 Dise˜ na una funci´ on que devuelva una copia invertida de una lista doblemente enlazada. .............................................................................................

4.9.

Listas con enlace doble y puntero a cabeza y cola

Ya sabemos manejar listas con puntero a cabeza y listas con punteros a cabeza y cola. Hemos visto que las listas con puntero a cabeza son ineficientes a la hora de a˜ nadir elementos por la cola: se tarda tanto m´ as cuanto mayor es el n´ umero de elementos de la lista. Las listas Introducci´ on a la Programaci´ on con C

307

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement