2015-11-17 5 views
-5
package SimpleArrayStackofchars; 

    public class SimpleArrayStackofchars implements Stack 
    { 
    protected int capacity;  // The actual capacity of the stack array 
    public static final int CAPACITY = 2; // default array capacity 
    protected Object S[];  // Generic array used to implement the stack 
    protected int top = -1; // index for the top of the stack (-1 = empty stack) 
    public SimpleArrayStackofchars() 
    { 
     this(CAPACITY); // default capacity 
    } 
    public SimpleArrayStackofchars(int cap) 
    { 
     capacity = cap; 
     S = new Object[capacity]; 
    } 
    public int size() 
    { 
      return (top + 1); 
    } 
    public boolean isEmpty() 
    { 
     return (top == -1); 
    } 
     public void push(Object element) throws FullStackException 
    { 
     if(size() == capacity) 
     { 
     //throw new FullStackException 
      ("Stack is full. Stack size max is "+ capacity); 
    /*can replace previous line with code to double stack size 
    */ 
       doubleArray(); 
     } 
      S[++top] = element; 
    } 
    public Object top() throws EmptyStackException 
    { 
     if (isEmpty()) 
     throw new EmptyStackException("Stack is empty."); 
     return S[top]; 
    } 
    public Object pop() throws EmptyStackException 
    { 
     Object element; 
     if (isEmpty()) 
     throw new EmptyStackException("Stack is empty."); 
     element = S[top]; 
     S[top--] = null; // dereference S[top] for garbage collection. 
     return element; 
    } 
    private void doubleArray() 
    { 
     Object [ ] newArray; 
    System.out.println("Stack is full (max size was "+capacity+"). Increasing to "+(2*capacity)); 
     //double variable capacity 
     capacity = 2*capacity; 
     newArray = new Object[ capacity ]; 
     for(int i = 0; i < S.length; i++) 
     newArray[ i ] = S[ i ]; 
     S = newArray; 
    } 
    public static void main(String[] args) 
    { 
      Stack S = new SimpleArrayStackofchars(); 
      S.push("1"); 
      S.push("2"); 
      S.push("3"); 
      S.push("4"); 
      S.push("5"); 
      S.push("6"); 

      while (!S.isEmpty()) 
     { 
       System.out.println(S.pop()); 
      } 
     } 
    } 

Таким образом, у меня есть этот код выше, когда я его запускаю, он печатает вынос. Однако у меня есть другой вопрос, ниже которого я не понимаю, как это сделать.Печатные элементы массива в обратном порядке

Это вопрос: перепишите основной метод, чтобы был вызов другого метода, называемого обратнымUsingPop, который примет массив символов и напечатает элементы массива в обратном порядке, используя метод pop.

+2

Отлично, вы дали нам много не относящегося к делу кода, и вы скопировали вопрос из своего задания. С чем именно вы боретесь? –

+0

Я не знаю, как сделать метод reverseUsingPop. Это стало проблемой для меня – user5500578

+0

http://stackoverflow.com/help/how-to-ask –

ответ

0

Вы уже создали методы, чтобы вы знали, как это сделать. Вы можете создать другой метод, называемый reverseUsingPop (char []). и здесь выполните цикл для их печати.

От взгляда на ваш код кажется, что вы должны были все это увидеть. Поэтому из вашего основного метода вы можете вызвать этот метод.

+0

Не ошибайтесь. Я просто изучаю Стеки. Это случайный вопрос, который я выбрал. Я не мог хорошо понять заметки. Я думал, что решение вопроса поможет мне понять это, как это было сделано ранее по другим темам. Пожалуйста, не отмечайте меня отрицательной стороной. – user5500578

+0

Я не «маркировал» вас так или иначе, я просто дал вам ответ, не выполняя домашнее задание для вас. Я подумал, что это может помочь вам продвинуться ^^ –

+0

OK, Thank You ... – user5500578

Смежные вопросы