美文网首页
数组模拟栈

数组模拟栈

作者: YAOPRINCESS | 来源:发表于2020-07-03 19:25 被阅读0次

结果

image.png

完整测试代码

package com.nan;

/**
 * @author klr
 * @create 2020-07-03-19:06
 */
public class ArrayStack {

    private int top = -1;//top标识栈顶,初始化为-1

    private int maxSize;//栈的大小

    private int[] stack;//栈

    public static void main(String[] args) throws Exception {
        ArrayStack arrayStack = new ArrayStack(4);
        arrayStack.push(1);
        arrayStack.push(2);
        arrayStack.push(4);
        System.out.println("入栈1/2/4:");
        arrayStack.list();
        System.out.println("出栈2个:");
        System.out.println(arrayStack.pop());
        System.out.println(arrayStack.pop());
        arrayStack.list();


    }

    public ArrayStack(int size) {
        maxSize = size;
        stack = new int[maxSize];
    }

    //判断栈是否已满
    public boolean isFull() {
        if (top == maxSize - 1) {
            return true;
        }
        return false;
    }

    //判断栈是否为空
    public boolean isEmpty() {
        if (top == -1) {
            return true;
        }
        return false;
    }

    //元素入栈
    public void push(int value) {
        if (isFull()) {
            System.out.println(("栈已满,无法添加"));
            return;
        }
        stack[++top] = value;
    }

    //元素出栈
    public int pop() throws Exception {
        if (isEmpty()) {
            throw new Exception("栈已空,无法出栈");
        }
        return stack[top--];
    }

    //展示栈
    public void list() {
        if (isEmpty()) {
            System.out.println("栈全空");
            return;
        }
        for (int i = top; i >= 0; i--) {
            System.out.printf("stack[%d]=%d\n",i,stack[i]);
        }
    }
}

相关文章

  • 数组模拟栈

    public class MyStack { private int top; private int[] a...

  • 数组模拟栈

    结果 完整测试代码

  • js栈的操作

    js模拟栈操作,输入两个数组,一个数组作为元素入栈顺序,另一个数组为出栈顺序,若出栈顺序符合入栈规则返回true

  • 栈和队列

    栈和队列 栈由于是一种特殊的线性表,它也分为顺序存储和链式存储。 顺序栈。类比数组,数组的尾巴模拟栈顶 链栈。 ...

  • JavaScript⑦数组队列

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时: 只要希望按照顺序使用数组元素时 栈: ...

  • JS7

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时:只要希望按照顺序使用数组元素时 栈:一端...

  • javaScript数组练习等......

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时:只要希望按照顺序使用数组元素时 栈:一端...

  • javascript第七章

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时: 只要希望按照顺序使用数组元...

  • JavaScript第七章

    栈和队列:js中没有专门的栈和队列类型,都是用普通该数组模拟的。何时:只要希望按照顺序使用数组元素时。栈:一段封闭...

  • JavaScript Array常用方法

    1.模拟数据结构栈 2.数组模拟队列 3.排序方法 4. sort 排序高级应用 5 数组的连接方法 6.slic...

网友评论

      本文标题:数组模拟栈

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