Java实现栈操作

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。(百度百科)
如图:
在这里插入图片描述
其中,把数据写入称为入栈或压栈(push),把数据写出称为出栈(pop)。
当栈为空,此时,栈顶=栈底

Java实现

package Stack;
//先进后出
public class Stack <T>{
    private T data[]; //栈中数据
    private int maxSize; //栈最大容纳量
    private int top; //栈顶索引
    //栈初始化
    public Stack(int maxSize){
        this.maxSize = maxSize;
        data = (T[])new Object[maxSize];
        this.top = -1;
    }
    //判断栈是否为空
    public boolean isEmpty(){
        return this.top == -1;
    }
    //判断栈是否已经满了
    public boolean isFull(){
        return this.top == maxSize - 1;
    }
    //压栈
    public boolean push(T value){
        if(isFull()){
            return false;
        }
        top ++;
        data[top] = value;
        return true;
    }
    //取出栈顶元素,出栈
    public T pop(){
        if (isEmpty()){
            return null;
        }
        T tmp = data[top];
        data[top] = null;
        top --;
        return tmp;
    }


}

待补充…

有问题或错误欢迎指正~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值