public class Stack<T>
{
private T[] VAl;
private int N=0;
private int Lenglh;
public Stack(int Len) {
Lenglh=Len;
VAl=(T[]) new Object[Len];
}
public void push(T val){
if (N==Lenglh)Resize(Lenglh*2);
VAl[N++]=val;
}
public void Resize(int Newlen){
T[] temp=(T[]) new Object[Newlen];
for (int i=0;i<N;i++){
temp[i]=VAl[i];
}
VAl= temp;
}
public T pop(){
T val=VAl[--N];
VAl[N]=null;
if (N>0&&N== VAl.length/4) Resize(VAl.length/2);
return val;
}
boolean isEmpty(){
return N==0;
}
int size(){
return N;
}
}
Java 实现栈
最新推荐文章于 2024-10-06 20:16:20 发布
本文介绍了一个使用Java编写的Stack<T>类,重点讲解了push方法的扩容策略,包括当栈满时如何通过resize方法将容量翻倍。同时涉及了pop方法、isEmpty和size方法。适合理解栈的基本操作和内存管理优化。
摘要由CSDN通过智能技术生成