用数组实现出栈,入栈和查看栈顶元素

栈的出入规则呢是先进后出,后进先出。就像我们往箱子里面放东西一样,先放进去的在下面,后面放进去的在上面,只有把后面放进去的先拿出来,。我们才能取到我们最开始放进去的东西

下面我们就用数组实现一下栈的push,pop和peek方法,因为是一次写的,就不一个个测试了,直接上所有的吧

package stack;

import java.util.Arrays;

/**
 * Created by xiaobai on 2019/1/10.
 */
public class MyStack {


//    用数组的方式实现栈的底层
    int[] elements ;

    public MyStack(){
        elements = new int[0];
    }

    //像栈中压入一个数据,
    public void push(int element){
        //创建一个新的长度比原数组大1的新数组
        int[] newArr = new int[elements.length+1];

        //将旧数组元素添加到新数组中
        for (int i= 0; i

下来我们写个main方法测试一下

package TestArrayDemo;

import stack.MyStack;

import java.util.Arrays;

/**
 * Created by xiaobai on 2019/1/10.
 */
public class JavaStackTest {

    public static void main(String[] args) {
        MyStack stack = new MyStack();

        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);
        stack.push(5);
        stack.push(6);

        //查看栈内元素
        stack.show();
        //拿出栈顶元素
        System.out.println(stack.pop());
        //查看栈内元素
        stack.show();
        //查看栈顶元素
        System.out.println(stack.peek());

        System.out.println(stack.isEmpty());
    }
}

好了,我们可以下看一下控制台的输出

[1, 2, 3, 4, 5, 6]
6
[1, 2, 3, 4, 5]
5
false

Process finished with exit code 0

关于栈的就写到这里了,大家互勉啊。有什么问题我们可以互相讨论哈

你可能感兴趣的:(基础)