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.

17.7. Refer<strong>en</strong>cias bibliográficas 391<br />

DABALE ARROZ A LA ZORRA EL ABAD<br />

Escriba un programa que lea una cad<strong>en</strong>a de caracteres (terminada por el carácter<br />

de fin de línea) y determine si es o no un palíndromo. (Indicación: un método<br />

s<strong>en</strong>cillo consiste <strong>en</strong> crear una lista de letras y su inversa y compararlas para ver<br />

si son iguales).<br />

3. Completar el programa de simulación de colas, calculando el tiempo que permanece<br />

la caja desocupada y el tiempo medio de espera de los cli<strong>en</strong>tes.<br />

4. La función de búsqueda de un dato <strong>en</strong> un árbol binario de búsqueda se pres<strong>en</strong>tó<br />

de forma recursiva. Escribir una versión iterativa de dicha función.<br />

5. Escriba un procedimi<strong>en</strong>to que halle el nodo predecesor de un nodo de un árbol binario<br />

de búsqueda. Úsese para escribir una codificación completa de la eliminación<br />

de un nodo <strong>en</strong> un árbol de búsqueda binaria.<br />

6. Completar la codificación <strong>en</strong> <strong>Pascal</strong> del recorrido <strong>en</strong> anchura de un árbol. Para el<br />

procesado de los nodos visitados limítese a imprimir el cont<strong>en</strong>ido de los nodos.<br />

7. Implem<strong>en</strong>te una versión iterativa del procecimi<strong>en</strong>to PonerEnCola.<br />

8. Escriba la versión iterativa de un procedimi<strong>en</strong>to recursivo g<strong>en</strong>érico.<br />

9. Escriba una función que evalúe expresiones aritméticas escritas <strong>en</strong> notación postfija.<br />

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

En [DL89] se hace un estudio detallado de de las principales estructuras dinámicas<br />

de datos con numerosos ejemplos y aplicaciones, sigui<strong>en</strong>do el mismo estilo que <strong>en</strong> la<br />

primera parte de este texto [DW89].<br />

Una refer<strong>en</strong>cia obligada es el clásico libro de N. Wirth [Wir86], que dedica su capítulo<br />

4 al estudio de las estructuras dinámicas de datos. D<strong>en</strong>tro de ellas hay que destacar<br />

el tratami<strong>en</strong>to de los distintos tipos de árboles: equilibrados, de búsqueda, g<strong>en</strong>erales y<br />

otros, con interesantes aplicaciones.<br />

Esta parte de nuestro libro debe <strong>en</strong>t<strong>en</strong>derse como una introducción, ya que las estructuras<br />

de datos que pued<strong>en</strong> construirse con punteros son variadísimas (árboles, grafos,<br />

tablas, conjuntos, matrices de gran tamaño y bases de datos, por citar algunos) y pued<strong>en</strong><br />

llegar a ser muy complejos. Su estudio <strong>en</strong> detalle corresponde a cursos posteriores. Por<br />

citar algunos textos <strong>en</strong> español sobre el tema destacamos [AM88] y [AHU88].<br />

Finalm<strong>en</strong>te, es obligado m<strong>en</strong>cionar que la idea de los punteros con refer<strong>en</strong>cias indirectas<br />

de los datos es ampliam<strong>en</strong>te explotada por el l<strong>en</strong>guaje C y sus ext<strong>en</strong>siones. Precisam<strong>en</strong>te<br />

ese uso ext<strong>en</strong>sivo es una razón de peso para lograr programas efici<strong>en</strong>tes. Entre<br />

las muchas refer<strong>en</strong>cias sobre este l<strong>en</strong>guaje, citamos [KR86].

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

Saved successfully!

Ooh no, something went wrong!