Académique Documents
Professionnel Documents
Culture Documents
Agustn J. Gonzlez
ELO320: Estructura de Datos y Algoritmos
1 Sem. 2004
Introduccin
Introduccin (cont)
Stacks
Queues
int count;
de llena */
Listas Enlazadas
Implementacin de Listas
doblemente Enlazadas (Sin
Centinela)
Vistazo a punteros en C
typedef struct nodo_lista {
12
Implementacin de Listas
doblemente Enlazadas (Sin
typedef struct nodo_lista {
centinela)
(cont)
struct nodo_lista
* prev;
Obs: el detalle de los argumentos formales son parte del protocolo para usar la estructura de datos.
Lo mostrado aqu no es la nica opcin vlida. Los argumentos para List_Insert pudieron ser, por
ejemplo,
List_Insert(P_NodoLista *posicion, int elemento)
Cul es el tiempo de ejecucin de List_Search?
Cul es el tiempo de ejecucin de List_Insert?
13
Implementacin de Listas
doblemente Enlazadas sin Centinela
typedef struct nodo_lista {
(Continuacin)
struct nodo_lista * prev;
14
head
Implementacin de Listas
doblemente Enlazadas Con
Centinela
Mudo
Centinela
15
Ejercicio 1
Dada una lista circular L doblemente enlazada. Desarrolle una funcin que
dado dos punteros x, y a nodos de la lista L, permita intercambiarlos.
Elemento elemento;
} NODO;
Solucin:
void swap (NODO *x; NODO*y) {
NODO * tmp;
tmp =x->prev;
x->prev = y->prev;
y->prev = tmp;
tmp = x->next;
x->next=y->next;
y->next = tmp;
}
16
17
Ejercicio 2:
18
19
21
T
NULL
NULL
NULL
NULL NULL
NULL NULL
22
Vistazo a Punteros en C
23
24
26
Divertimento
Lu
Mi
Ju
Vi
Sa
Do
27