Pila en java (Stack)

CrIpI

Tenía una duda haber si me la podría resolver alguien porque no encuentro información de ella en ningún lado.

Me piden que dentro de la clase pila tenga un método para comprobar si está vacia o no.

¿¿ No se puede usar el metodo stack.Empty() ??

O en los objetos que están en la pila tengo que crear un enlace entre ellos.

NeB1

#1 en Java no lo sé, pero en general, al crear una clase PILA, puedes hacer estas dos cosas:

El puntero que apunta al primer elemento de la pila, si es nulo, la pila está vacía, y si apunta a un elemento, entonces no está vacía.

También puedes guardar en una variable propia de la clase, cuyo valor inicial sea 0, la longitud de la pila:" private int longitud = 0; " que se actualice constantemente en cada inserción o en cada "eliminación xD". Con lo que cuando longitud = 0, la pila está vacía.

No se si es lo que buscas...

CrIpI

Con eso no me sirve lo siento.

Es si esta permitido dentro de un metodo de la clase de la pila de esta vacia si se puede poner :

boolean vacio = pila.empty();
return vacio;

B

Nose a lo qe te refieres con una clase pila, yo en java hice un ejercicio de simular una pila. La pila estaba contenida en un array.
Yo lo de si estaba vacia o no lo contralaba si la longitud del array era < 0, si fuera asi ponia el puntero a -1, para si el usuario intentaba eliminar un elemento le decia qe estaba vacia y siempre el puntero se ponia a -1 y al agregar incrementaba el puntero e introducia el valor.
Nose si te sirve este funcionamiento pero yo ice una pila asi en java.
Si necesitas el ejercicio para verlo dimelo y te lo paso en megaupload.
Un Saludo

CrIpI

#4 La ventaja de las pilas es k son ilimitadas se van adaptando si añades un objetos o lo quitas.

Un array le dices que es tamaño 10 y no puedes aumentar el tamaño.

Solo digo si dentro de la clase de la pila puedes usar metodos predefinidos para el uso de las pilas (Stack) que vienen incluidos en java.

Gnos1s

Escribe el código, quizá entendamos bien qué quieres decir.

Yo he entendido que estás haciendo un TDA Pila y quieres tener un método público que te permita saber si la pila está vacía.

CrIpI

boolean estaVacia(){
boolean vacio = pila.empty();
return vacio;
}

Hobbes

#1 Aprende a usar las API's. Si te das cuenta hay un metodo llamado Empty() que dice si está vacia o no.

Solucion:

public boolean estaVacia(){
return pila.empty();
}

Un saludo.

CrIpI

Entonces está permitido llamar a la propia pila dentro de su clase!

Ok muchas gracias.

bLaKnI

"Un array le dices que es tamaño 10 y no puedes aumentar el tamaño."

Eso, en el caso de que estemos hablando de arrays estáticos, porsupuesto.
Que por defecto, no suele ser el caso de la POO, como Java. Aunque evidentemente, existen. Los arrays como tal, suelen serlo. Pero lo normar es usar ArrayLists o Lists.

Por otra parte, creo que o no te has explicado bien, o te estas haciendo un poco la picha un lio.
No se trata de "está permitido llamar a la propia pila dentro de su clase", no estas tocando en ningun momento la classe de la pila (stack)... ¿o si?

Tu estas creando un objeto, con tu classe, y este objeto tiene unas variables de objeto propias, de las cuales una de ellas es de tipo Stack ( http://java.sun.com/j2se/1.4.2/docs/api/java/util/Stack.html ).
Y en TU objeto, puedes crear los metodos que te den la gana para acceder a dicha pila, como es normal.

Ademas si quieres, puedes heredar, overridear, o lo que te de la gana, pero por lo general, así es como se trabaja con objetos, no es nada raro...

Usuarios habituales