Crear una pila en Java

06/oct/2009 Java , , , 14 Comentarios
java

Una pila es una estructura que nos permite apilar elementos y recopilarlos en el orden inverso al cual los apilamos mediante operaciones de desapilar. Esto es lo que se conoce como estructuras LIFO (Last In First Out). De esta manera una pila suele tener 3 operaciones básicas:

  • apilar, añade un elemento a la lista.
  • desapilar, retira un elemento de la lista
  • ¿está vacía?, comprueba si la lista está vacía.

En el lenguaje Java contamos con la clase Stack en la librería java.util. Es importante saber que la pila hereda de la pila (aka Vector). Y que por lo tanto podemos utilizar los elementos del Vector sobre la pila.

En nuestro ejemplo vamos a insertar 10 elementos, que serán números, y los recuperaremos en su orden inverso.

Lo primero será definir la pila, es decir, instanciar la clase Stack.

  1. Stack<String> pila = new Stack<String>();

Como vemos el tipo de elementos que insertaremos en la pila serán String -cadenas-.

Una vez instanciada vamos a ir creando los elementos e insertándolos en la pila. El método que inserta elementos en la pila es .push(). Este método recibirá como parámetro el elemento a insertar.

  1. for (int x=1;x<=10;x++)
  2. pila.push(Integer.toString(x));

Hemos creado un bucle que nos vaya creando los números y nos hemos apoyado en la clase Integer y su método .toString() para convertir los números en cadena.

Una vez que tenemos todos los elementos, procedemos al vaciado de la pila. Tendremos que interactuar sobre la pila hasta que esta esté vacía, cosa que nos dice el método .empty(). En cada una de las iteraciones extraeremos un elemento de la pila mediante el método .pop()

  1. while (!pila.empty())
  2. System.out.println(pila.pop());

Pocas líneas de código que nos ayudan a crear una pila en Java.

¿Qué cosas se te ocurren resolver mediante el uso de una pila en Java? Proponed casos e iremos resolviéndolos mediante el uso de una pila.

Vídeos sobre Java Util

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

14 comentarios en “Crear una pila en Java”

Víctor Cuervo

Víctor Cuervo

@McA, Sí, puedes modificarlos. Pero si manejas una pila lo normal suele ser el extraer los elementos hasta llegar al que quieres modificar. Por no romper la filosofía de la pila.

Víctor Cuervo

McA

Se puede modificar datos que ya han sido agregados a una pila?

Víctor Cuervo

jose

Hola!!! oigan, y si quiero llenar la pila con los numeros cuales quiera, como le puedo hacer. intente pidiendo los numeros en el for pero no me funciono del todo.

Víctor Cuervo

edgar eduardo

Desarrollar un programa que permita crear una pila con listas enlazadas para almacenear números enteros, implementar los métodos push y pop. Además de lo siguiente:

1.Almacenar en la pila 100 números de manera aleatoria (entre 0 y 1000).
2.Sacar uno a uno los elementos de pila e imprimir en pantalla, sólo aquellos que sean múltiplos de 3

Víctor Cuervo

Mario

Perdon es así … fail copy paste sorry xd
Stack stack = new Stack();

Declararlo a nivel de clase asi –>> Stack stack;
e Instanciarlo cuando lo vamos a usar –>> stack = new Stack();

Víctor Cuervo

Mario

Yo lo declaré a nivel de clase y lo instancié en donde lo iba a usar y no me dio problemas…

Stack stack = new Stack();

Declararlo a nivel de clase asi –>> Stack stack;
o Instanciarlo cuando lo vamos a usar –>> stack = new Stack();

Víctor Cuervo

full_programig

hola tengo una duda quisiera saber si hay alguna manera de guardar una pila en un nodo de una lista, no se donde de declararia la pila, si en la clase nodo, en el principal o hay que crarle una clase, gracias de antemano!!

Víctor Cuervo

abner Gomez

sta muy bueno… aqui les dejo un codigo por si alguien quire hacer un mini word (ctrl + z ) el evento des hacer— solo son dos botones en java y ojo este es un ejemplo con pilas (no se olviden de importar la librerira import java.util.Stack;)

public class PilasView extends FrameView {
Stack pila = new Stack();

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

String Tet =Texto.getText();
pila.push(Tet);

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Texto.setText(pila.pop().toString());
if(pila.empty()){
Texto.setText(“”);
}

//ejemplo sencillo de pus y pop espero que a alguien le sirva— no dejen de subir ejemplos es de buena ayuda

Víctor Cuervo

Julio Avila

si ya había resuelto el problema; muchas gracias Pablo.

Víctor Cuervo

Pablo

Julio mira quisas ese sea tu error

Stack pila = new Stack();

La clase Stack la tienes que agregar asi:

Class Stack{
}

la verdad estoy recien aprendiendo pero ojalas ayude saludos

Víctor Cuervo

Pablo

Julio mira quisas ese sea tu error

Stack pila = new Stack();

La clase Stack la tienes que agregar asi:

Class Stack{
}

la verdad estoy recien aprendiendo pero ojalas ayude saludos

Víctor Cuervo

Julio Avila

Hola he colocado la siguiente linea y me ha dado un error…
Stack pila = new Stack();
Dice (el error..) que no puedo especificar un tipo de dato para la pila. y me obliga a poner:
Stack pila = new Stack();
He agregado la libreria, import java.util.*;
Todo el resto del codigo funciona bien, y me preguntaba por que me marca el error al poner: Stack pila = new Stack();

Muchas gracias!

Víctor Cuervo

Jhon Fernando Ortiz

Muy interesante este tema. ¿Qué se puede resolver con una pila? Conversión entre notaciones matemáticas: prefija, infija, postfija. Hasta pronto!

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*


*