Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T E M A 1
1.1. Introduccin a las estructuras de datos dinmicas. 1.2. Tipo Puntero 1.3. Aplicacin: Listas enlazadas.
Elementos de Programacin
Qu sucede si a priori no conocemos la cantidad de espacio de almacenamiento que vamos a precisar? Solucin
Ejemplo: Tipos TipoPersona TipoPoblacion[1..50] Variables TipoPoblacion poblacion
P rogramacin Modular 2
Ag[1] Nombre1,... Ag[2] Nombre2,... Ag[3] Nombre3,... Ag[4] Nombre4,... Ag[5] ...
Nombre2,... Nombre1,...
Ag
* *
Nombre4,... Nombre3,...
Ag[50]
Variable Esttica
P rogramacin Modular 4
1 FORMA
2 FORMA
P rogramacin Modular 5
Variables An An nimas
Variables Z *ptr
Direccin de memoria
MEMORIA ptr
Contenido de la memoria
Direccin
ptr
Direccin
23419 23423
23423
100
ptr
100
Desreferenciacin
*ptr
Permite acceder a la variable annima asociada al puntero ptr. Esta comparacin ser verdadera cuando ptr1 y ptr2 apunten a la misma direccin de memoria ptr1 pasa a apuntar a la misma variable annima que ptr2. NIL indica que no apunta a ninguna dir. de memoria
P rogramacin Modular 8
Comparacin
ptr1==ptr2
ptr1=ptr2
Asignacin
ptr=NIL
Operacin
Cdigo
Representacin Grfica
ptr
Asigna (ptr) ???
ptr
Libera (ptr)
NIL
P rogramacin Modular 9
ptr3
ptr3,
ptr2
??? 3
ptr1
??? 3
ptr1==ptr2 ptr1==ptr2
False False
P rogramacin Modular 10
Para acceder a los componentes de un registro desde una variable puntero se utiliza ''
aginfo (*ag).info
Ag
Nombre1,... Nombre2,... Nombre3,... Nombre4,...
Insertar un nodo al principio Eliminar el primer nodo Insertar un nodo en una lista enlazada ordenada Eliminar un nodo en una lista enlazada Eliminar todos los nodos de luna lista enlazada Visualizar una lista
P rogramacin Modular 12
ptr
lista
P rogramacin Modular 13
ptr
lista
P rogramacin Modular 14
lista
12
P rogramacin Modular 15
act
act
lista ant
12
P rogramacin Modular 17
P rogramacin Modular 18
P rogramacin Modular 19
El campo de enlace del ltimo nodo apunta al primer nodo de la lista, en lugar de tener el valor NIL No existe ni primer ni ltimo nodo. Tenemos un anillo de elementos enlazados unos con otros
P rogramacin Modular 20
Es conveniente, aunque no necesario, tener un enlace (puntero o ndice) al ltimo nodo lgico de la lista. As podemos acceder facilmente a ambos extremos de la misma Una lista circular vaca vendr representada por un valor NIL o Nulo en p
p p
P rogramacin Modular 21
P rogramacin Modular 22
Es una lista enlazada en la que cada nodo tiene al menos tres campos:
Los algoritmos para las operaciones sobre listas doblemente enla zadas son normalmente ms complicados. Pueden ser recorridas fcilmente en ambos sentidos.
lista
P rogramacin Modular 23
Una lista doblemente enlazada puede modificarse para obtener una estructura circular de la misma
lista
P rogramacin Modular 24
BIBLIOGRAFIA
q q
Dale, N. y Weems , C. Pascal. Ed. McGraw Hill, 2 edicin, 1989 Helman, P., Veroff, R. y Carrano, F. Intermediate Problem Solving and Data Structures. Walls & Mirrors. Ed. The Benjamin/ Cummings Publishing, 2 edicin, 1991. Joyanes Aguilar, L. Fundamentos de Programacin. Algoritmos y Estructuras de Datos. Ed. McGraw Hill, 2 edicin, 1996. Tanenbaum, A.M., Augenstein, M.J. Data Structures Using Pascal. Ed. Prentice Hall, 2 edicin, 1986.
P rogramacin Modular 25