美文网首页
Java 数据结构与算法:栈

Java 数据结构与算法:栈

作者: 智勇双全的小六 | 来源:发表于2018-06-22 13:49 被阅读0次

栈就是一个容器,和 List 一样,是在数组的基础上构建的。可以把栈认为是一个有一些特定方法的容器。

栈需要实现的方法

一般而言,栈需要实现如下几个方法:

  • push(Integer item),把 item 压入栈
  • Integer pop(), 把栈顶端的第一个元素弹出栈,并返回这个元素。
  • Integer peek(),查看栈顶端的第一个元素
  • Boolean isEmpty(), 判断栈是不是空的
  • Boolean isFull(), 判断栈是不是满的

实现栈的代码

注意先加和后减

public class StackX {
    private Integer maxSize;
    private Integer top;
    private Integer[] stackArr;

    public StackX(Integer maxSize) {
        this.maxSize = maxSize;
        stackArr = new Integer[maxSize];
        top = -1;
    }

    public void push(Integer item){
        stackArr[++top] = item;
    }

    // ++top 是先加后赋值;
    这种写法也可以被别的方法代替
    top = 0;
    public void push(Integer item){
        stactArr[top++] = item;
    }

    public Integer pop(){
        return stackArr[top--];
    }

    public Integer peek(){
        return stackArr[top];
    }

    public Boolean isEmpty(){
        return top == -1;
    }

    public Boolean isFull(){
        return top == maxSize -1;
    }
}

栈的应用

  1. 单词逆序
    思路是压入栈,然后在弹出栈就好了
  2. 校验成对的括号。
    思路是遇到左括号如("(","[","{")就压入栈,遇到右括号就弹出栈,如果这两个能组成一对就是正确的,反之是错误的。

相关文章

网友评论

      本文标题:Java 数据结构与算法:栈

      本文链接:https://www.haomeiwen.com/subject/ubexyftx.html