123 - GeorgeZhung/-1 GitHub Wiki

import java.util.Iterator;

/**

  • ResizingArrayStack class.

  • Include StdIn.java, and StdOut.java. */ public class ResizingArrayStack implements Iterable { private Item[] a; private int N;

    public ResizingArrayStack() { a = (Item[]) new Object[1]; N = 0; }

    public boolean isEmpty() { return N == 0; } public int size() { return N; }

    private void resize(int max) { Item[] temp = (Item[]) new Object[max]; for(int i = 0; i < N; i++) temp[i] = a[i]; a = temp; }

    public void push(Item item) { if(N == a.length) resize(2*a.length); a[N++] = item; }

    public Item pop() { Item item = a[--N]; a[N] = null; if(N > 0 && N == a.length/4) resize(a.length/2); return item; }

    public Iterable iterator() { return new ReverseArrayIterator(); }

    private class ReverseArrayIterator implements Iterator { private int i = N; public boolean hasNext() {return i > 0;} public Item next() {return a[--i];} public void remove() {} }

    public static void main(String[] args) { ResizingArrayStack s = new ResizingArrayStack(); while(!StdIn.isEmpty()){ String item = StdIn.readString(); if (!item.equals("-")) s.push(item); else if (!s.isEmpty()) StdOut.print(s.pop() + " "); } StdOut.println("(" + s.size() + "left on stack)"); for(String string: 5) StdOut.println(string); } }

⚠️ **GitHub.com Fallback** ⚠️