Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DINÁMICOS LINEALES
PILAS
Como idea intuitiva podríamos verlo como una pila de libros de la cual solo
podemos coger o mirar el primero.
No se podrá acceder a los elementos anteriores al último (cima). Una pila es
una estructura LIFO (ultimo en entrar primero en salir).
Es tu TDA lineal y dinámico (el número de elementos no es fijo). Sin
embargo su implementación puede ser dinámica, a través de punteros, o estática,
mediante arreglos.
Las operaciones básicas asociadas al TDA son:
- PilaVacía
- PilaLlena
- CrearPila
- Apilar
- esafilar
- ConsultarCima
Implementaciones estáticas
Implementaciones dinámicas
CONST
MAXCOLA=…+1; (* perdemos una posición por la operación antes explicada *)
TYPE
TipoIndice:[1..MAXCOLA];
TipoCola = RECORD
datos : ARRAY TipoIndice OF TipoDatos;
frente,fina : TipoIndice;
END;
Implementaciones dinámicas
CONCLUSIONES
En conclusión, no existen reglas ni para decidir de forma absoluta entre los
TDA dinámicos o estáticos ni tampoco para concluir que una implementación
dinámica es siempre mejor que una estática para las estructuras dinámicas. Sin
embargo, sí se dispone de criterios claros para adoptar la solución adecuada al
resolver un problema concreto. Estos criterios son la economía de almacenamiento
y el coste computacional. Como sucedía en los algoritmos de clasificación se deben
conocer todas las posibilidades, en este caso los TDA y sus posibles
implementaciones, y al resolver unas especificaciones dadas elegir razonablemente
las más adecuadas.
En este capítulo se han presentado los TDA dinámicos lineales
fundamentales para la organización de datos, que mantienen una organización
secuencial con un predecesor y su sucesor. En primer lugar se han introducido,
como ejemplos de construcción de TDA dinámicos, algunos similares a las listas
enlazadas. Seguidamente se han estudiado detalladamente los dos TDA dinámicos
lineales más característicos: las pilas y las colas, desarrollando completamente sus
implementaciones, tanto estáticas como dinámicas, y se han explorado las diversas
posibilidades hasta llegar a una implementación determinada satisfactoria. Como es
habitual, en ocasiones se han encontrado soluciones que no son adecuadas aunque
‘funciones’.
Debe observarse que se ha insistido en el hecho, bien conocido y detallado
desde el comienzo del texto, de que el carácter estático o dinámico del TDA es
independiente de su implementación. Las implementaciones estáticas tienen la
ventaja de que son más rápidas, mientras que las dinámicas permiten un mejor
aprovechamiento de la memoria. La clave fundamental para decidir entre las
implementaciones estáticas y dinámicas de tipos de datos abstractos dinámicos
radica en el hecho de si se conoce o no a priori un número máximo de datos que
deberán ser almacenados. Sin embargo, esto no significa que la utilización de un
TDA dinámico para resolver un problema en el que el número de elementos a
almacenar es variable no es siempre adecuada.
En conclusión, no existen reglas ni para decidir para todos los casos que un
TDA es más adecuado ni para considerar únicamente una implementación
determinada. El estudio de los conceptos desarrollados en este capítulo permite
disponer de criterios claros para adoptar la solución adecuada al resolver un
problema concreto.