算法(Algorithms)第4版 练习 1.3.42

After copy
Left on Stack r: be to not or be to 
Left on Stack copy: be to not or be to 
After r pop
Left on Stack r: to not or be to 
Left on Stack copy: be to not or be to 
//1.3.42
        Stack<String> r = new Stack<String>(copy);
        StdOut.println("After copy");
        StdOut.print("Left on Stack r: ");
        for (String s : r) {
            StdOut.print(s + " ");
        }
        StdOut.println();
        StdOut.print("Left on Stack copy: ");
        for (String s : copy) {
            StdOut.print(s + " ");
        }
        StdOut.println();
        
        r.pop();
        StdOut.println("After r pop");
        StdOut.print("Left on Stack r: ");
        for (String s : r) {
            StdOut.print(s + " ");
        }
        StdOut.println();
        StdOut.print("Left on Stack copy: ");
        for (String s : copy) {
            StdOut.print(s + " ");
        }
        StdOut.println();
    //1.3.42
    public Stack(Stack<Item> stack) {
        
        first = null;
        n = 0;
        
        Stack<Item> temp = new Stack<Item>();
        
        for(Item item : stack) {
            temp.push(item);
        }
        for(Item item : temp) {
            this.push(item);
        }
        
    }