pile d'impression sans éclater éléments java

pour une tâche que j'ai à écrire une méthode qui affiche la pile, cette partie est facile

public void print(stack s)
{
   while(!isEmpty())
   {
      System.out.println(s.peek());
      s.pop();
   }

}

Le problème est que après j'ai imprimé la pile, ma tâche est d'imprimer le fond de l'élément sur la pile, ce qui n'est pas des plus cause j'ai utilisé.pop() dans ma méthode d'impression. C'est mon code pour l'impression de l'élément bas.

public void bottom(stack s)
{
  if(isEmpty())
   {
     System.out.println("Stack is empty");
   }
  else
   {
     System.out.println(stackArray[0]);
   }
}

Ma question est: Comment dois-je modifie la méthode d'impression donc je n'ai pas de pop les éléments de la pile? Ou est-il une autre façon de faire en sorte que la pile tient toujours ma éléments après l'utilisation de méthode d'impression?

comme l'a fait appel c'est la pile que nous utilisons dans nos classes(la plupart sont en néerlandais):

public class MyStack
{
    protected Object[ ] stackArray;
    protected int top;
    private int grootte;
    private static final int DEFAULT_GROOTTE = 10;

    public MyStack( )
    {
        grootte = DEFAULT_GROOTTE;
        stackArray = new Object[grootte];
        top = 0;
    }

    public boolean isEmpty( )
    {
        if (top == 0)
                return true;
            else 
                return false;
    }

    public void push(Object e)
    {
        if (top == grootte)
            allocateMore( );
        stackArray[top] = e;
        top++;
    }

    public Object pop( )
    {
            if(isEmpty( ))
            {
                System.out.println("Stack leeg : er kan geen element van de stack afgehaald worden.");
                return null;
            }
                    top--;
                    return stackArray[top];

}
    public Object peek( )
    {
            if(isEmpty( ))
            {
                System.out.println("Stack leeg : er kan geen topelement van de stack getoond worden.");
                return null;
            }
                    return stackArray[top-1];
    }

    public int size( )
    {
        return top;
    }

    private void allocateMore( )
    {
        Object[ ] original = stackArray;
        grootte = grootte * 2;
        stackArray = new Object[ grootte];
        for(int i = 0; i < grootte/2; i++)
        {
            stackArray[i] = original[i];
    }
    }

}

depuis mon rep n'est pas suffisant pour répondre à ma propre question d'une modification rapide

Je crois que j'ai trouvé une autre façon d'imprimer la pile à l'aide de cette

public void print(stack s)
{
 for(int i =top-1; i>=0;i--)
   System.out.println(stackArray[i]);
}

il n'est probablement pas la meilleure façon de le faire, mais ça fonctionne 😛

Pourriez-vous ajouter votre Pile de classe?
À l'aide d'Itérateur : public void printStack Pile(stack){ Iterator<> itr = pile.iterator(); while(itr.hasNext()){ sysout(itr.suivant); } }

OriginalL'auteur user2270715 | 2013-04-18