《算法》第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();}
}