栈的基本操作
以栈存储的数据是char类型为例:
- void push(char)/boolean push(char) //压入一个数据
- char pop() //删除并返回栈顶的元素
- char top() //返回栈顶元素
- int size() //返回数据个数
- boolean isEmpty() //判断栈是否为空
- boolean isStackFull() //判断栈是否已满
栈的实现代码
- 当数组大小过小倍增数组(push函数中实现),大小过大倍减数组(pop函数中实现)。
- 发现了pop编写过程中容易出现的几个错误,已经注释在代码中。
package stack;
//DAStack: Double Array Stack 倍增数组栈
public class DAStack {
private char[] datas;
int top,capacity;//容量
public DAStack(){
top=-1;
capacity=1;
datas=new char[capacity];
}
public void push(char data){
top++;
if(top<capacity){
datas[top]=data;
}
else{
char[] copy=new char[capacity*2];
System.arraycopy