09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 16<br />

Punteros<br />

16.1 Introducción al uso de punteros . . . . . . . . . . . . . 336<br />

16.2 Aplicaciones no recursivas de los punteros . . . . . . . 344<br />

16.3 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348<br />

Las estructuras de datos estudiadas hasta ahora se almac<strong>en</strong>an estáticam<strong>en</strong>te<br />

<strong>en</strong> la memoria física del computador. Cuando se ejecuta un subprograma, se<br />

destina memoria para cada variable global del programa y tal espacio de memoria<br />

permanecerá reservado durante toda su ejecución, se us<strong>en</strong> o no tales variables;<br />

por ello, <strong>en</strong> este caso hablamos de asignación estática de memoria.<br />

Esta rigidez pres<strong>en</strong>ta un primer inconv<strong>en</strong>i<strong>en</strong>te obvio: las estructuras de datos<br />

estáticas no pued<strong>en</strong> crecer o m<strong>en</strong>guar durante la ejecución de un programa.<br />

Obsérvese sin embargo que ello no implica que la cantidad de memoria usada<br />

por un programa durante su funcionami<strong>en</strong>to sea constante, ya que dep<strong>en</strong>de, por<br />

ejemplo, de los subprogramas llamados. Y, más aún, <strong>en</strong> el caso de subprogramas<br />

recursivos se podría llegar fácilm<strong>en</strong>te a desbordar la memoria del computador.<br />

Por otra parte, la repres<strong>en</strong>tación de ciertas construcciones (como las listas)<br />

usando las estructuras conocidas (concretam<strong>en</strong>te los arrays) ti<strong>en</strong>e que hacerse<br />

situando elem<strong>en</strong>tos consecutivos <strong>en</strong> compon<strong>en</strong>tes contiguas, de manera que las<br />

operaciones de inserción de un elem<strong>en</strong>to nuevo o desaparición de uno ya exist<strong>en</strong>te<br />

requier<strong>en</strong> el desplazami<strong>en</strong>to de todos los posteriores para cubrir el vacío<br />

producido, o para abrir espacio para el nuevo.<br />

Estos dos aspectos, tamaño y disposición rígidos, se superan con las llamadas<br />

estructuras de datos dinámicas. La definición y manipulación de estos objetos

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!