You are on page 1of 12

Estructuras de Datos

Dinmicas

Hasta ahora las variables que se han empleado,


denominadas genricamente estticas, renen
una serie de caractersticas comunes:
a) Todas las variables estticas se declaran
explcitamente con la palabra reservada var en
la zona de declaraciones.
b) Cada variable esttica tiene un nico
identificador.
c) Las variables estticas o estructuras de datos
estticas definen su tipo y tamao durante la
compilacin, y en tiempo de ejecucin, se
reserva el espacio anteriormente definido en
memoria.

El trabajar con variables estticas


estructuradas o estructuras de datos
estticas representa una serie de
inconvenientes:
a) Proporcionan una estructura rgida
que apenas puede alterarse durante la
ejecucin del programa.
b) El espacio en memoria
correspondiente es muy limitado.
c) No aprovechan de forma ptima la
memoria disponible.

Variables Dinmicas
Estos inconvenientes pueden solventarse
utilizando las variables dinmicas:
a) No se declaran en la zona de declaraciones
de variables del programa o de las rutinas.
b) Para almacenar una variable dinmica se
reserva espacio en memoria en algn
momento durante la ejecucin del programa.
Asimismo, tambin debe liberarse ese espacio
de memoria reservado para una variable
dinmica durante la ejecucin para otros usos.

Apuntadores o Punteros
Los punteros son la base de construccin
de todas las denominadas estructuras de
datos dinmicas.
Definicin: El TDA puntero es un tipo de
dato simple cuyo valor es la direccin de
memoria de una variable de otro tipo,
denominada variable referenciada, y sus
operadores asociados son la asignacin
y la comparacin de punteros .

Apuntadores o Punteros

Apuntadores o Punteros
Las variables referenciadas son variables
dinmicas que son creadas y destruidas
en tiempo de ejecucin .
En la mayora de los computadores el
valor de un puntero es un nmero entero,
sin embargo, este valor no es de tipo
entero, sino una direccin.

Declaracin de los tipos


puntero
La declaracin de los tipos puntero se realiza en la
seccin TYPE con la siguiente sintaxis:
TYPE
Tipo_puntero = POINTER TO Tipo_variable_referenciada;

donde Tipo_variable_referenciada es el tipo de datos


al que pertenecern las variables referenciadas.
La declaracin de variables puntero se realiza en la
seccin VAR con la siguiente sintaxis:
VAR
variable_puntero : Tipo_puntero;

Declaracin de los tipos


puntero
La variable referenciada es accedida
con el puntero mediante el operador
apuntador, cuyo smbolo es el acento
circunflejo (^).
Apuntador: p
Variable referenciada: p^

Declaracin de la Variable
Referenciada
La memoria necesaria para albergar las
variables puntero es reservada y ocupada
de la misma forma que las variables
estticas. Sin embargo, la variable
referenciada no existe hasta que no ha
sido creada. Para crear una variable
referenciada se dispone del procedimiento
Allocate, cuya sintaxis es:

Variable Referenciada
Allocate(variable_puntero, SIZE(Tipo_variable_referenciada));

En primer lugar toma la memoria libre necesaria


para albergar la variable referenciada (determinada
por la funcin SIZE que determina el tamao de la
variable
referenciada).
En segundo lugar, asigna la direccin de memoria
que ha reservado al puntero, variable_puntero.
Tras la ejecucin de este procedimiento, la variable
referenciada existe en el sentido de que hay espacio
de memoria reservado para ella y adems, puede
ser accedida a travs del puntero.

Variable Referenciada
Una vez que una variable referenciada
no va a volver a ser utilizada, se
destruir mediante el procedimiento
Deallocate cuya sintaxis es:
Deallocate(variable_puntero,
SIZE(Tipo_variable_referenciada));

You might also like