package fuxi.stack;
/**
* @auther 张弢
* @create 2022-12-07 10:21
*/
public class ArrayStackTest {
public static void main(String[] args) {
ArrayStack arrayStack=new ArrayStack();
arrayStack.push(5);
arrayStack.push(6);
arrayStack.push(8);
arrayStack.push(6);
arrayStack.push(7);
arrayStack.push(101);
arrayStack.push(100);
arrayStack.push(102);
System.out.println("获取有效元素个数:"+arrayStack.getSize());
System.out.println("出桟元素:");
System.out.println(arrayStack.pop());
System.out.println(arrayStack.pop());
System.out.println(arrayStack.pop());
System.out.println("桟是否为空:"+arrayStack.isEmpty());
System.out.println("获取有效元素个数:"+arrayStack.getSize());
System.out.println("查看栈顶元素:"+arrayStack.pop1());
}
}
class ArrayStack{
int top=-1;//桟顶位置
int[]stack=new int[5];//数组实现桟
//1.入桟(带扩容)
public void push(int val){
System.out.println("入桟元素:"+val);
int size=stack.length;
if ((top+1)==size){
int[] temp=new int[size];
int tempTop=-1;
while (top > -1){
temp[++tempTop]=pop();
}
stack=temp;
top=tempTop;
tempTop=-1;
int[] newStack=new int[size*2];
while (top > -1)
{
newStack[++tempTop]=pop();
}
top=tempTop;
stack=newStack;
}
stack[++top]=val;
}
//2.出桟
public int pop(){
if (top>-1) return stack[top--];
return -1;
}
//3.判空
public boolean isEmpty(){
return top==-1;
}
//4.获取有效元素个数
public int getSize(){
if (top>-1) return top+1;
return 404;
}
//5.查看栈顶元素
public int pop1(){
return stack[top];
}
}
桟--数组实现
最新推荐文章于 2024-07-30 20:50:32 发布