Вы находитесь на странице: 1из 3

ESTRUCTURAS DINAMICAS DE DATOS PILAS, LISTAS Y COLAS

Esttica Vs Dinmica

Una estructura es esttica cuando su configuracin no se modifica a lo largo de su uso. Y aquellas


estructuras que sufren cambios en su composicin, a lo largo del tiempo son dinmicas (Memoria)

Por qu usar estructuras dinmicas?

Hasta ahora tenamos una serie de variables que declaramos al principio del programa o de cada
funcin. Estas variables, que reciben el nombre de ESTTICAS, tienen un tamao asignado desde
el momento en que se crea el programa.

Este tipo de variables son sencillas de usar y rpidas... si slo vamos a manejar estructuras de
datos que no cambien, pero resultan poco eficientes si tenemos estructuras cuyo tamao no sea
siempre el mismo.

Ejemplos:

Tenemos una serie de fichas, e iremos aadiendo ms. Si reservamos espacio para 27, no
podremos llegar a aadir la nmero 28, estamos limitando el mximo. Lo ideal sera aprovechar
mejor la memoria que tenemos en el ordenador, para guardar en ella todas las fichas o al menos
todas aquellas que quepan en memoria.

Una solucin "tpica" (pero mala) es sobredimensionar: preparar una agenda contando con 1000
fichas, aunque supongamos que no vamos a pasar de 200.

Esto tiene varios inconvenientes: se desperdicia memoria, obliga a conocer bien los datos con los
que vamos a trabajar La solucin suele ser crear estructuras DINMICAS, que puedan ir creciendo
o disminuyendo segn nos interese. En los lenguajes de programacin "clsicos", como C y Pascal,
este tipo de estructuras se tienen que crear de forma bsicamente artesanal. Mientras que en
lenguajes modernos como C#, Java o las ltimas versiones de C++, existen esqueletos ya creados
que podemos utilizar con facilidad.

PILA (STACK)

Un conjunto ordenados de elementos homogneos, de los que se puede aadir nuevos elementos
o quitar elementos existentes por la cabeza de la pila. Se considera una pila como un grupo
ordenado, porque los elementos estn dispuestos de acuerdo a cunto tiempo llevan en la pila.
Los elementos se aaden y quitan por la cabeza o tope de la pila; el ltimo elemento aadido es el
primero en ser quitado. LIFO (Last In First Out) El ltimo en entrar es el primero en salir Vamos
apilando, o tomando de la cima. No se puede tomar elementos de otro sitio que no sea la cima. La
pila no tiene un tamao mximo definido, sino que puede crecer arbitrariamente

Para definir el Tipo de Dato Abstracto TDA PILA, no es suficiente la estructura lgica. Debemos
definir tambin el conjunto de operaciones que permita al usuario acceder y manipular los
elementos almacenados en una PILA. Como la pila es una estructura dinmica, cambia conforme
se aade y quitan elementos

Las operaciones apilar y desapilar son las ventanas en el encapsulamiento de la pila, a travs de los
cuales pasan los datos de la pila. Estas operaciones son un paquete a travs de la cual se manejan
todas las acciones de la pila.

Una Pila en C #

Para crear una pila tenemos preparada la clase Stack. Los mtodos habituales que debera permitir
una pila son introducir un nuevo elemento en la cima ("apilar", en ingls "push"), y quitar el
elemento que hay en la cima ("desapilar", en ingls "pop"). Para utilizar la clase "Stack" y la
mayora de las que veremos en este tema, necesitamos incluir en nuestro programa una
referencia a "System.Collections

Permite tambin mtodos como:

"Peek", que mira el valor que hay en la cima, pero sin extraerlo.

"Clear", que borra todo el contenido de la pila.

"Contains", que indica si un cierto elemento est en la pila.

"GetType", para saber de qu tipo son los elementos almacenados en la pila.


"ToString", que devuelve el elemento actual convertido a un string.

"ToArray", que devuelve toda la pila convertida a un array.

"GetEnumerator", que permite usar "enumeradores" para recorrer

"Count", que nos indica cuntos elementos contiene.

Вам также может понравиться