Información
Actualidad
Aquí encontraras noticias de actualidad sobre Gnu Linux y Open Source.

Además de información sobre la comunidad LiGNUx.
Distribuciones y entornos
Información ordenada sobre los diferenes sistema operativos Gnu Linux y las diferentes opciones de entornos gráficos.
Tutoriales y guías
Todos los pasos e informaciones que puedes desear para tu día a día.
Tutoriales
Tutoriales
Programación
Programación
About Us
Get to know the people behind the code and the mission behind the work
how we handle data
Privacy
Security
Legal

Pilas de datos

3 agosto, 2013
¿Que es una pila? una pila es una estructura de datos similar a las listas, pero las pilas tienen una restricción, solo se puede agregar y remover datos al final de la pila, no en medio por me dio de un índice ni al otro extremo, se le llama del tipo LIFO(Last In Firts Out) es decir: El primero en entrar es el último en salir. Puede ser un poco complicado tratar de entenderlo solo con leer esto, así que ilustro el comportamiento de las pilas gráficamente:

Analicemos esto detenidamente, la pila de datos ahora tiene 3 elementos, el dato 0, dato 1 y dato 2, donde el dato 0 esta en el fondo de la pila y el dato 2 en el tope de la misma.

En un principio, la pila (representada con la línea azul) tuvo que estar vacía

Luego, si se fijan en el dibujo, si quieren insertar un dato deben de hacerlo por la parte que esta abierta ¿verdad? Pues se coloca ahí, y el dato 0 pasa a ser el fondo de la pila, es decir el primer elemento de esta, y como es el único dato dentro, también pasa a ser el tope de la pila quedando mas o menos así:

Luego, si queremos insertar otro dato, solo podemos hacerlo por la parte de arriba al igual que el dato 0, entonces al introducir el dato 1 quedaría así:

Ahora el tope de la pila es dato 1, y dato 0 sigue siendo el fondo y lo seguirá siendo hasta que se vacíe la pila. Naturalmente, si queremos introducir otro elemento a la pila, será como en los casos anteriores y quedará como en la primera imagen de esta entrada.

Si queremos obtener el dato 0, tenemos que apartar primero los elementos que están arriba de este, como si tuviésemos una pila de libros y queremos el que está hasta el fondo, si queremos los que están encima, debemos primero de apartar los libros que están encima de este o se caerán todos.

Al igual si queremos obtener el dato 1, al haber un dato 2, dato 3 o más encima, debemos primero deshacernos de los que están encima, bien, simplemente borrando los o pasándolos a otra pila.

La función para apilar un elemento en la estructura se le conoce como push() y la función para des-apilar se le conoce como pop(), también es posible toparse con la función peek() que es la que toma el valor del elemento del tope de la pila sin necesidad de borrarlo.

Las funciones push() y pop() son operaciones inversas entre si.

En lenguajes de programación como C# se utilizan pilas como un tipo abstracto de datos ya establecido en lugar de usar arreglos, ya que son dinámicos y su tamaño puede cambiar en tiempo de ejecución y no en tiempo de compilación. A diferencia de Python, que todas sus variables son dinámicas y no se tiene el problema de la longitud de una estructura, ademas en Python no existen realmente las pilas, sino que se utilizan las listas y ciertas funciones para simular el comportamiento de una pila, de eso hablo en otra entrada: Pilas en Python.

Escrito por César Iglesias

Hola, mi nombre es César, estudiante de Ingeniería en Computación, soy alguien muy curioso que le gusta aprender cosas nuevas en especial si es del mundo GNU/Linux, espero poder compartir lo poco que se con los demas.

Suscribirse
Notificarme las
guest
0 Comentarios
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.
cloudflagpaperclipprinterfile-emptyfilm-playcamera-videopicturelaptop-phonebriefcasecrossmenu
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram