您的位置:首页 > 其它

顺序栈(数组实现)

2015-10-05 16:02 309 查看
上面代码实现了Stack的 isEmpty(),isFull(),clear(),push(),pop(),peek()方法。顺序栈,必须要同时检查下溢出(underflow)和上溢出(overflow)。

public class Stack {
private int[] stack;
private static final int defaultSize = 100;
private int size;
private int topIndex;
public Stack() {
setUp(defaultSize);
}
public Stack(int sz) {
setUp(sz);
}
public void setUp(int sz) {
size = sz; topIndex = 0; stack = new int[size];
}
public boolean isEmpty() {
return topIndex == 0;
}
public boolean isFull() {
return topIndex == size;
}
public void clear() {
topIndex = 0;
}
public void push(int x) throws Exception {
if(isFull()) throw new Exception("overflow");
else stack[topIndex++] = x;
}
public int pop() throws Exception {
if(isEmpty()) throw new Exception("underflow");
else return stack[--topIndex];
}
public int peek() throws Exception {
if(isEmpty()) throw new Exception("underflow");
else return stack[topIndex-1];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: