《算法》习题与答案1.3.1

69 阅读1分钟

《算法》第4版中的一些习题,留作记录,不定时更新。

1.3.1

为FixedCapacityStackOfStrings 添加一个方法isFull(). 该方法是判断定容栈是否已满。上代码:

public class FixedCapacityStackOfStrings implements Iterable<String>{
    private int size;
    private String[] stackArray;
    private class FixedIterator implements Iterator<String>{
        private int i = size;
        
        @Override
        public boolean hasNext(){
            return i > 0;
        }
        @Override
        public Item next(){
            if(!hasNext()){
                throw new NoSuchElementException("Stack is empty");
            }
            return stackArray[--i];
        }
    }
    
    public void push(Item item){
        if(isFull()){ throw new ArrayIndexOutOfBoundsException("array is full!");}
        stackArray[size++];
    }
    public Item pop(){
        if(isEmpty()){return throw new NoSuchElementException();}
        return stackArray[--size];
    }
    public boolean isEmpty(){return size == 0;}
    public int size(){return size;}
    public boolean isFull(){return size == stackArray.length;}
  
    public Iterator<String> iterator(){return new FixedIterator();}
}