java数据结构之java实现栈
本文导语: 代码如下:import java.util.Arrays; /** * 栈的实现 * @author Skip * @version 1.0 */public class Stack { private int size; //栈中元素的个数 private Object[] arr; //底层数组 private final int defaultLength = 200; //默认长度 /** * 无参构造,使用默认...
import java.util.Arrays;
/**
* 栈的实现
* @author Skip
* @version 1.0
*/
public class Stack {
private int size; //栈中元素的个数
private Object[] arr; //底层数组
private final int defaultLength = 200; //默认长度
/**
* 无参构造,使用默认长度初始化数组
*/
public Stack(){
arr = new Object[defaultLength];
size = 0;
}
/**
* 使用长度参数初始化数组
* @param length 长度
*/
public Stack(int length){
arr = new Object[length];
size = 0;
}
/**
* 入栈
* @param element 数据
*/
public void push(T element){
//是否需要扩容
if(size >= arr.length){
//数组扩容
extendCapacity(size+1);
}
arr[size++] = element;
}
/**
* 出栈
* @return 数据
*/
@SuppressWarnings("unchecked")
public T pop(){
//元素个数为0,无法执行出栈操作
if(size==0){
return null;
}
T t = (T)arr[size-1];
arr[--size] = null; //数据已出栈,还原为null
return t;
}
/**
* 清空栈
*/
public void clear(){
for(int i=0;i Integer.MAX_VALUE - 8){
newLength = Integer.MAX_VALUE;
}
//数组扩容
arr = Arrays.copyOf(arr, newLength);
}
}
}