Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ¡Micronet! en 23 Octubre 2010, 02:17 am



Título: Pila & Cola
Publicado por: ¡Micronet! en 23 Octubre 2010, 02:17 am
Buenas Tardes, Dias, Noches... Hoy vengo cargado con mas dudas que nada  ;-)
Supongo que eso es bueno por que si no soluciono mis dudas ahora nunca las solucionare jajaja   ::).

Solo espero que no se arten de mi por tantas preguntas.


Dudas:
Entiendo el concepto de Pilas y Colas.
Pero con que objetivo los tendria que usar, para que me sirven  ¿?


Ahora me dijieron que representara pilas y colas con Templates.
Ese ejercicio ya lo tengo encontrado... pero yo no copio, simplemente uso la informacion encontrada con el unico objetivo de entenderlo y despues implementarlo.

Entonces me pueden ayudar :) ¿?


Título: Re: Pila & Cola
Publicado por: klaussius en 23 Octubre 2010, 10:46 am
Pues lo que preguntas no es ninguna tontería, aunque si entiendes el concepto no te deberá resultar complicado el ver cómo funciona.
Otra cosa es que cuestiones sobre la utilidad de las pilas y las colas...

En el mundo real, una pila sería como un montón de cajas puestas una encima de la otra. Para poder quitar una tienes que quitar todas las que has puesto después. Las que has quitado, por supuesto, siempre puedes guardarlas en otro lugar para luego volver a colocarlas.
En el mundo informático un ejemplo bastante gráfico es lo que sucede cuando en un documento empiezas a darle a control+z para deshacer lo último hecho. Si te fijas eso funciona como una especie de "pila" de órdenes, y cada vez que le das a control+z quitas la última que has realizado.
Ahora imagínate a ti mismo haciendo un programa tipo calculadora, que guarde en un array las operaciones que hayas ido haciendo y que te de la opción de deshacer trabajando con esta pila, y ya me dirás si no es útil o no para que los usuarios puedan corregir errores en sus cálculos ;)

Una cola muy clásica y que todo el mundo conoce es una cola de impresión. El primer documento que llegó por el final es el primero que se imprime, y los que van llegando después se van colocando detrás.
¿Te imaginas una puerta de discoteca, con una fila de gente y los porteros que deciden si dejan pasar o no a alguien, y la gente que va llegando poniéndose detrás?
Pues eso, ni más ni menos es una cola: su particularidad es que primero se atiende al que llegó antes, y luego en orden sucesivo los que fueron llegando después, que se van colocando por el final.

Resumiendo mucho más a lo bestia:
En pilas: El último que ha llegado es el primero que puedo quitar.
En colas: El primero que ha llegado es el primero que puedo quitar.

Lee la respuesta de Saberuneko para más información (gracias).


Título: Re: Pila & Cola
Publicado por: Saberuneko en 23 Octubre 2010, 13:02 pm
Ejemplo práctico de cola: ¿Conoces los típicos listados que hay cuando vas al médico? Una cola en ese sistema es perfecto, ya que las personas se van "sacando/mostrando" desde el primero introducido en la cola hasta el último.

Por cierto, se olvidó mencionar que es obligatorio introducir los datos por orden tanto en las pilas como en las colas.