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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

448 Capítulo 19. Tipos abstractos de datos<br />

• Inyectar(x,d): inserta el elem<strong>en</strong>to x <strong>en</strong> el extremo posterior de la cola doble<br />

d.<br />

• Expulsar(x,d): elimina y devuelve el elem<strong>en</strong>to que está <strong>en</strong> el extremo posterior<br />

de la cola doble d.<br />

Programar una unidad de Turbo <strong>Pascal</strong> para el tipo abstracto de datos cola doble.<br />

19.6 Refer<strong>en</strong>cias bibliográficas<br />

En este capítulo se introduc<strong>en</strong> los tipos abstractos de datos, eludi<strong>en</strong>do las profundidades<br />

formales que hay tras ellos y evitando también dar catálogos exhaustivos de los<br />

tipos abstractos de datos más usuales. En [Mar86, Har89] se estudian los aspectos formales<br />

de los tipos abstractos de datos basados <strong>en</strong> especificaciones algebraicas. Además,<br />

ambos textos pued<strong>en</strong> considerarse como catálogos de los tipos abstractos de datos de<br />

más amplia utilización, incluy<strong>en</strong>do la especificación, implem<strong>en</strong>taciones y aplicaciones<br />

comunes de cada uno de ellos. En [Pn93] se puede <strong>en</strong>contrar un estudio actual, riguroso<br />

y completo de los tipos abstractos de datos <strong>en</strong> nuestro idioma, junto con especificaciones<br />

de los más usuales. Igualm<strong>en</strong>te, [HS90] es una lectura obligada <strong>en</strong> cuanto se aborda el<br />

estudio de tipos abstractos de datos.<br />

Con un <strong>en</strong>foque más aplicado, <strong>en</strong> [LG86, CMM87] se da un tratami<strong>en</strong>to completo<br />

de los tipos abstractos de datos bi<strong>en</strong> adaptado a <strong>Pascal</strong>, ofreci<strong>en</strong>do propuestas de implem<strong>en</strong>tación<br />

<strong>en</strong> este l<strong>en</strong>guaje.<br />

Por supuesto, los tipos abstractos de datos pued<strong>en</strong> ser implem<strong>en</strong>tados <strong>en</strong> l<strong>en</strong>guajes<br />

de programación difer<strong>en</strong>tes de <strong>Pascal</strong>. De hecho, <strong>Pascal</strong> estándar no cu<strong>en</strong>ta con mecanismos<br />

apropiados para manejarlos, ya que el concepto de tipo abstracto de datos es<br />

posterior a la creación de este l<strong>en</strong>guaje. El propio N. Wirth incluyó este concepto <strong>en</strong><br />

su Módula2 a través de los módulos, y las unidades de Turbo <strong>Pascal</strong> no son más que<br />

un remedo (incompleto, por cierto) de este mecanismo. Otros l<strong>en</strong>guajes con facilidades<br />

para el desarrollo de tipos abstractos de datos son Ada [Bar87], que dispone de paquetes,<br />

y C++ [Str84], haci<strong>en</strong>do uso de clases. Además, algunos l<strong>en</strong>guajes proporcionan al<br />

programador técnicas de compilación separada más adecuadas a los tipos abstractos y<br />

sus necesidades que las incompletas unidades de Turbo <strong>Pascal</strong>.<br />

Finalm<strong>en</strong>te, debemos indicar que el ejercicio 4 está tomado de [Mar86]. Los ejercicios<br />

5, 6 y 7 están tomados de [Wei95].

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

Saved successfully!

Ooh no, something went wrong!