No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué son stacks?

16/23
Recursos

Aportes 10

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Nota aclaratoria
Hubo una pequeña confusión al momento de describir qué son los stacks 😃

El principio fundamental de los stacks es LIFO, es decir que el ÚLTIMO elemento en entrar será el primero en salir.

Pilas (Stacks)

Las pilas (stacks) son una estructura de datos donde tenemos una colección de elementos, y sólo podemos hacer dos cosas:

  • añadir un elemento al final de la pila
  • sacar el último elemento de la pila

Una manera común de visualizar una pila es imaginando una torre de panqueques, donde una vez que ponemos un panqueque encima de otro, no podemos sacar el anterior hasta que se hayan sacado todos los que están encima.

A pesar de su simplicidad, las pilas son estructuras relativamente comunes en ciertas áreas de la computación, en especial para implementar o simular evaluación de expresiones, recursión, scope, …

LIFO (Last In First Out)

Las pilas son estructuras de tipo LIFO, lo cual quiere decir que el último elemento añadido es siempre el primero en salir.

De alguna forma, podemos decir que una pila es como si fuera una lista o array, en el sentido que es una colección, pero a diferencia de los arrays y otras colecciones, en las pilas solo accedemos al elemento que esté “encima de la pila”, el último elemento. Nunca manipulamos ni accedemos a valores por debajo del último elemento.

Last In First Out, algo que siempre se escucha en desarrollo Web, ya que es el principio fundamental en el cual se basa el Navegador para ser muy rápido!

Excelente explicación torica

El principio fundamental de los stacks es LIFO, es decir que el ÚLTIMO elemento en entrar será el primero en salir.

El reto aquí es comprender la diferencia entre Stack y Listas, pues aunque sean similares, las acciones o funciones no se pueden replicar de igual forma en los dos.

En otras palabras, cuando tú tienes una lista puedes acceder a ella, modificarla, cambiar un elemento de un lado a otro y jugar con esta todo lo quieras.

En el caso de los Stack, está más relacionado con el tiempo. Piensa en esto, el tiempo tiene un sentido, minuto a minuto va pasando las horas y así. Tú no puedes ir a cuando tenías 5 años y modificar algo de ese día, cambiarlo de lugar y eliminarlo. Este es el primer principio del Stack, Yo no puedo ir a los datos viejos y jugar con ellos.

jejeje, Severo lo que acabé de decir.

Bueno, lo siguiente es que tú almacenas una información encima de la otra porque antes realizaste una acción que te llevo a esa acción. Es como decir que saliste de la escuela, tuviste que ganar cada materia para poder graduarte y eso te permitió ir a estudiar a una universidad. El segundo principio es que el orden de los factores altera el producto, si tú no te gradúas del colegio no puedes llegar a estudiar a la universidad y por ende no te gradúas.

Severo tema, que bacano como lo organicé.

Ahora bien, tú no puedes retroceder el tiempo ni las acciones. Lo entiendo. Pero esto en el PC se puede hacer, y es solo aparentando CTRL + Z. Esta combinación de teclas, si fueran en la vida real, lo que pasaría es que al yo estar en la Universidad, podría retroceder a mi graduación y después pasar al examen final de las materias para ver si me gradúo.

En otras palabras, y aplicándolo en programación, necesitas que durante el paso del tiempo se almacene una información que, sin las acciones hechas en el pasado, no puedas estar ahí, y solo cuando requieras ir para atrás, esos datos que están, los cuales son los últimos que almacenaste, sean quitados del sistema y tú puedas agregar nuevas acciones que te lleven a otro futuro.

No sé si entendiste, pero si lo aplicas en una herramienta como Word, o el historial del navegador, como lo plantea el profe, entenderás mejor las cosas.

Como dicen en una novela mexicana de nosotros los colombianos y dando una pequeña modificación: “Me chimbo saber esto”.

Para comprender mejor el uso de infix y postfix: https://www.geeksforgeeks.org/stack-set-2-infix-to-postfix/

El principio fundamental de los stacks es LIFO, es decir que el ÚLTIMO elemento en entrar será el primero en salir.

ojalá el profe basado en lo que explica en la teoría (porque si lo hace bien) lo mostrara por partes en el código. y no transcribir hasta con errores.

Un stack, también conocido como pila, es una estructura de datos que sigue el principio de

LIFO (Last In, First Out), 
  • Significa que el último elemento insertado es el primero en ser eliminado. En otras palabras, el stack opera siguiendo un orden inverso al de una pila de objetos física, donde el último elemento que se coloca en la pila es el primero que se retira.

Un stack se puede visualizar como una pila de objetos colocados uno encima del otro. Los elementos se pueden insertar o eliminar solo desde la parte superior de la pila, que se llama “top”. Este comportamiento se puede resumir con dos operaciones principales:

Push (empujar):

  • Agrega un elemento en la parte superior del stack.

Pop (extraer):

  • Elimina y devuelve el elemento que está en la parte superior del stack.
    Además de estas operaciones, los stacks también pueden proporcionar otras operaciones auxiliares, como peek (observar), que devuelve el elemento en la parte superior del stack sin eliminarlo, y isEmpty (está vacío), que verifica si el stack está vacío o no.

Los stacks se utilizan comúnmente en programación para realizar tareas como:

Seguimiento de llamadas de funciones en la pila de ejecución (conocida como "pila de llamadas" o "call stack").
Evaluación de expresiones matemáticas en notación posfija (postfix).
Realización de operaciones de deshacer/rehacer en editores de texto y aplicaciones gráficas.
Implementación de algoritmos recursivos mediante la recursión de cola (tail recursion).