实现栈

Posted skychmz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现栈相关的知识,希望对你有一定的参考价值。

栈的特点是先进后出(FILO),我们之前实现了数组,具体在

https://www.cnblogs.com/skychmz/p/11968449.html

现在我们可以利用这个数组类来实现栈。

首先我们新建一个栈的原型,具有基本的方法和变量

public class ArrayStack<E> {

    private Array<E> array;

    public ArrayStack(int capacity){
        array = new Array<>(capacity);
    }

    public ArrayStack(){
        array = new Array<>();
    }

    public int getSize(){
        return array.getSize();
    }

    public boolean isEmpty(){
        return array.isEmpty();
    }

    public int getCapacity(){
        return array.getCapacity();
    }

   
}

然后我们实现操作栈元素的方法

  由于栈先进后出的特性,我们只能往栈顶(数组尾部)加入元素,也就是push方法,通过数组的addLast方法实现

public void push(E e){
        array.addLast(e);
    }

  取元素也一样,只能从栈顶(数组尾部)取出元素,也就是pop方法,通过数组的removeLast方法实现

public E pop(){
        return array.removeLast();
    }

  最后实现查看栈顶元素的方法

public E peek(){
        return array.get(getSize() - 1);
    }

 

以上是关于实现栈的主要内容,如果未能解决你的问题,请参考以下文章

方法与对象内存分析

代码片段 - Golang 实现集合操作

代码片段 - Golang 实现简单的 Web 服务器

ASP.net MVC 代码片段问题中的 Jqgrid 实现

Android Studio - 带回栈的导航抽屉

代码片段:Shell脚本实现重复执行和多进程