模拟栈开发说明
底层使用数组储存数据 栈规则:先进后出,从下往上
对象:栈 行为:进栈与出栈(存储与释放)
栈是用数组模拟的
进栈与出栈
出栈:数组的赋值从数组第一位开始赋值
出栈:数组的删除(将数组长度减一位 复制到 数组长度减一位(从后数))
输出
输出时:使用任意键继续的方式直观的表示进栈与出栈(未有值的部分用X表示)
让变量输入数组getstacks(int a)
在测试类中使用赋值
废话不多说直接上代码!<( ̄︶ ̄)↗[GO!]
程序源码:
栈类↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
/**
* 模拟栈的实现,储存非0的整型值(教师版)
* @author DELL
*
*/
public class StacksType {
private int []arr;
private int length =5;
private int size;
public StacksType(){
arr =new int[length];
}
public StacksType(int initLength){
if(initLength>length){
length = initLength;
}
arr =new int[length];
}
//进栈
public void push(int i){
if(length==size){
System.out.println("栈已满......");
return ;
}
if(i==0){
System.out.println("该栈不能存储整形默认值0");
return ;
}
arr[size++]=i;
}
//出栈
public int pop(){
if(size==0){
System.out.println("栈已空......");
return 0;
}
int temp =arr[size-1];
arr[size-1]=0;
size--;
return temp;
}
//清除栈中所有元素
public void clear(){
for(int i=0;i<this.size;i++){
arr[i]=0;
}
this.size=0;
}
//获取栈中实际元素个数
public int getSize(){
return this.size;
}
}
测试类↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
/**
* 测试类
* @author DELL
*
*/
public class Test01 {
public static void main(String []args){
Zhan s=new Zhan();
//入栈
s.setStacks(s);
//出栈
s.outStacks(s);
//清栈
s.setStacks(s);
s.cle(s);
}
}