我找到解决这个特殊问题的方法时遇到了问题。 我有这类通用堆栈。
class Pilita<T> {
private int tam;
private T[] arregloPila;
private int tope;
@SuppressWarnings("unchecked")
public Pilita(int tam) {
this.tam=tam;
arregloPila=(T[])new Object[tam];
tope=-1;
}
public void push(T valor){
if(pilaLlena()){
throw new StackFullException("No se puede meter el: "+"["+valor+"]"+" La pila esta llena");
}
arregloPila[++tope]=valor;
}
public T pop() {
if(pilaVacia()){
throw new StackEmptyException("La pila esta vacia");
}
return arregloPila[tope--];
}
public boolean pilaVacia(){
return (tope == -1);
}
public boolean pilaLlena(){
return (tope==tam-1);
}
public int contar(){
return(tope+1);
}
我想知道如何实现一个打印堆栈的方法,因为我有一个普通堆栈的方法,但它似乎不适用于Generic Stack。
任何帮助都会有所帮助。
答案 0 :(得分:0)
要打印所有堆栈,您只需要检查堆栈是否为空
public static void main(String[] args) {
Pilita pila = new Pilita(3);
pila.push("1");
pila.push("2");
pila.push("3");
while (!pila.pilaVacia()) {
System.out.println("Pil pop " + pila.pop());
}
}