Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
FixedCapacityStackOfStrings.java FixedCapacityStackOfStrings.java Below is the syntax highlighted version of FixedCapacityStackOfStrings.java from §1.3 Stacks and Queues. /****************************************************************************** * Compilation: javac FixedCapacityStackOfStrings.java * Execution: java FixedCapacityStackOfStrings * Dependencies: StdIn.java StdOut.java * * Stack of strings implementation with a fixed-size array. * * % more tobe.txt * to be or not to - be - - that - - - is * * % java FixedCapacityStackOfStrings 5 < tobe.txt * to be not that or be * * Remark: bare-bones implementation. Does not do repeated * doubling or null out empty array entries to avoid loitering. * ******************************************************************************/ import java.util.Iterator; import java.util.NoSuchElementException; public class FixedCapacityStackOfStrings implements Iterable { private String[] a; // holds the items private int N; // number of items in stack // create an empty stack with given capacity public FixedCapacityStackOfStrings(int capacity) { a = new String[capacity]; N = 0; } public boolean isEmpty() { return N == 0; } public boolean isFull() { return N == a.length; } public void push(String item) { a[N++] = item; } public String pop() { return a[--N]; } public String peek() { return a[N-1]; } public Iterator iterator() { return new ReverseArrayIterator(); } public class ReverseArrayIterator implements Iterator { private int i = N-1; public boolean hasNext() { return i >= 0; } public String next() { if (!hasNext()) throw new NoSuchElementException(); return a[i--]; } public void remove() { throw new UnsupportedOperationException(); } } public static void main(String[] args) { int max = Integer.parseInt(args[0]); FixedCapacityStackOfStrings stack = new FixedCapacityStackOfStrings(max); while (!StdIn.isEmpty()) { String item = StdIn.readString(); if (!item.equals("-")) stack.push(item); else if (stack.isEmpty()) StdOut.println("BAD INPUT"); else StdOut.print(stack.pop() + " "); } StdOut.println(); // print what's left on the stack StdOut.print("Left on stack: "); for (String s : stack) { StdOut.print(s + " "); } StdOut.println(); } } Copyright © 2000–2017, Robert Sedgewick and Kevin Wayne. Last updated: Fri Oct 20 12:50:46 EDT 2017.