Bachiller

Páginas: 8 (1957 palabras) Publicado: 20 de febrero de 2013
Unidad 02 Programación Orientada a Objetos con C#
2.8 Estructuras Dinámicas.

Las pilas (Stack) y las colas (Queue) son dos colecciones muy similares entre si ya que solo varía la forma en que guardan y extraen los elementos que contienen. En ciertas cosas estas dos colecciones se parece a un ArrayList, como por ejemplo que soporta el redimensionamiento automático y que los elementos sonalmacenados como objetos (System.Object). Pero también tienen algunas diferencias, como por ejemplo que no se puede cambiar su capacidad y no se puede acceder a sus elementos a través de índices
En algunas ocasiones, es importante tener un control sobre el orden en que los elementos son ingresados y obtenidos de la colección. Por esta razón existen las colecciones Stack y Queue. Como se mencionóanteriormente, en estas colecciones NO es posible acceder aleatoriamente mediante índices a sus elementos, sino que es necesario utilizar un método encargado de extraer un elemento a la vez. Pero ¿cuál elemento?
Precisamente en la respuesta a esa pregunta radica la diferencia entre estas dos colecciones:

La pila (Stack), es una colección en la que todo nuevo elemento se ingresa al final de lamisma, y únicamente es posible extraer el último elemento de la colección. Por este comportamiento, el Stack es conocido como una colección LIFO (Last Input First Output) ya que siempre el último elemento ingresado a la colección, será el primero en salir. Quizás la mejor manera de recordar el comportamiento de un Stack, es asociándolo con una “pila” de platos en donde cada plato esta encima del otro yen caso de querer ingresar un plato a la pila, lo que se debe hacer es ponerlo encima del ultimo plato. Luego cuando se quiere sacar un plato de la pila, solo podemos coger el último plato.

La cola (Queue), tiene el comportamiento contrario a la pila. Todo nuevo elemento se agrega al principio de la colección y solo se puede extraer el último elemento. Por esta razón, la cola se conoce comouna colección FIFO (First Input First Output) ya que el primer elemento que ingresa a la cola es el primer elemento que sale. Para recordar este comportamiento se puede asociar la Queue con la fila que se debe hacer en un banco para realizar una consignación. En ese caso, el cajero atiende en el orden en que llegan las personas a la cola.
Las colecciones Stack y Queue se encuentran en el espacio denombres System.Collections como todas las colecciones no genéricas.
Para implementar cada una de ellas se debe utilizar la clase Stack y Queue respectivamente y utilizar sus métodos que ofrecen la posibilidad de agregar elementos a la colección y extraer elementos según el comportamiento de la colección que se esté utilizando.

Agregando elementos a pilas y colas:

Como se ve en la figuraanterior, para agregar elementos a una pila se debe utilizar el método Push que recibe como parámetro un Object. Mientras que en la cola se debe utilizar el método Enqueue (encolar). Ambos métodos, incrementan automáticamente la capacidad de la colección.
Para obtener un elemento de la colección, contamos con dos opciones diferentes:
1. Obtener el elemento indicado según el comportamiento de lacolección sin quitarlo de la colección. Esto se logra mediante el método Peek de cada colección. (pila)
2. Obtener un elemento de la colección, quitándolo de la misma. Esto se logra mediante el método Pop de la pila (Stack) o el método Dequeue de la cola (Queue). (cola)
Ejemplo de Stack:

Ejemplo del Queue:

Este par de colecciones deben ser usadas cuando nos interesa tener control sobre elorden en que los elementos son obtenidos de las mismas. La pila se debe usar cuando queremos obtener los elementos en el orden inverso al cual fueron ingresados. Mientras que la cola debe ser utilizada cuando queremos obtener los elementos en el mismo orden que fueron ingresados.

Listas Enlazadas (ArrayList).
Una lista enlazada la constituye una colección lineal de elementos, llamados nodos,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Bachiller
  • Bachiller
  • Bachiller
  • Bachiller
  • Bachiller
  • Bachiller
  • Bachiller
  • Bachiller

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS