package other;
//栈是一种后进先出的数据结构
public class StackOfIntegers {
private int[]elements; //用数组存放栈的元素
private int size=0;
public static final int DEFAULT_CAPACITY=10;
public StackOfIntegers(){
this(DEFAULT_CAPACITY);//用this调用构造方法
}
public StackOfIntegers(int capacity){
elements=new int[capacity];
}
//下面是进栈方法
public void push(int value){
if(size>=elements.length){
//创建一个长度为原数组2倍数组
int[]temp=new int[elements.length*2];
//将原来数组元素复制到新数组中
System.arraycopy(elements,0,temp,0,elements.length);
elements=temp;
}
elements[size++]=value;
}
//出栈方法
public int pop(){
return elements[--size];
}
//返回栈顶元素
public int peek(){
return elements[size-1];
}
//判断空的方法
public boolean empty(){
return size==0;
}
public int getSize(){
return size;
}
}
/*该栈使用数组实现,元素存储在名为elements的整数数组中,创建栈的同时创建一个数组对
* 象,使用默认方法构建的栈包含10个元素,也可以使用带参数构造方法指定数组初始大小。
* 变量size记录栈中元素个数,下标为size-1的元素为栈顶元素,如果栈空,size值为0.*/
/*StackOfIntegers类实现了栈的常用方法,其中包括push方法将一个整型存入栈中,pop方法
* 元素出栈方法,peek方法返回栈顶元素但不出栈,empty方法返回栈是否为空;getSize方法
* 返回栈中元素个数。*/
JAVA学习代码——栈
最新推荐文章于 2021-12-16 14:31:13 发布