java数组实现栈

public class Demo2 {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
     Stack<Integer>   stack=new Stack<Integer>();
     stack.push(1);
     stack.push(2);
     stack.push(3);
     stack.push(4);
     stack.push(5);
     stack.push(6);
     System.out.println(stack.size);
     stack.pop();
     System.out.println(stack.size);
     System.out.println(stack.peek());
     stack.clear();
     System.out.println(stack.size);
     System.out.println(stack.peek());
}
}
class Stack<T>{
//数组的容量
int cal=5;
Object[] arr=new Object[cal];
//栈的大小
int size=0;
private  int top=0;
//取出栈顶元素
public T peek(){
if(isE()){
return null;
}else{
return (T) arr[top-1];
}
}
//出栈
public void pop(){
arr[top-1]=null;
top--;
size--;
}

//入栈
public void push(Object num){
if(size<cal){
arr[top]=num;
top++;
size++;

}else{
//数组扩容
resize();
push(num);
}

}
//判断栈是否为空
public boolean isE(){
return size==0;
}
//将栈清空
public void clear(){
//Arrays.fill(this.arr, null);
arr=null;
size=0;
top=0;
}
//输出栈的大小
public int size(){
return size;
}
//数组扩容
public void resize(){
cal=cal*3/2-1;
Object[] arr1=new Object[cal];

System.arraycopy(this.arr, 0,arr1, 0, arr.length);
  this.arr=arr1;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值