Java实现顺序栈的示例代码

下面是Java实现顺序栈的示例代码的完整攻略。

什么是顺序栈

顺序栈是一种使用数组实现的栈,也称作数组栈。其基本特点是后进先出,即最后进栈的元素最先出栈。

顺序栈的实现思路

  1. 顺序栈需要使用数组保存元素,因此先声明一个数组;
  2. 定义一个变量top表示栈顶元素的下标,初始值为-1;
  3. 入栈操作时,将元素插入到数组中,top的值加1;
  4. 出栈操作时,将栈顶元素弹出,top的值减1。

顺序栈示例代码

public class ArrayStack {
    private int[] stack;    //数组
    private int top = -1;   //初始化为-1,表示栈为空

    public ArrayStack(int capacity) { //创建指定大小的数组栈
        stack = new int[capacity];
    }

    public void push(int value) { //入栈操作
        if (top >= stack.length - 1) {
            throw new RuntimeException("栈已满");
        }
        stack[++top] = value;
    }

    public int pop() { //出栈操作
        if (top < 0) {
            throw new RuntimeException("栈为空");
        }
        return stack[top--];
    }

    public int peek() { //查看栈顶元素
        if (top < 0) {
            throw new RuntimeException("栈为空");
        }
        return stack[top];
    }

    public boolean isEmpty() { //判断栈是否为空
        return top < 0;
    }

    public boolean isFull() { //判断栈是否已满
        return top >= stack.length - 1;
    }
}

示例说明一

假设我们创建了一个容量为5的顺序栈,现在依次将元素1、2、3、4、5入栈,然后再将栈顶元素依次弹出并打印出来。代码如下:

ArrayStack stack = new ArrayStack(5);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
while(!stack.isEmpty()){
    System.out.println(stack.pop());
}

执行上述代码的输出结果是:

5
4
3
2
1

示例说明二

假设我们创建了一个容量为3的顺序栈,现在依次将元素1、2、3、4依次入栈。由于栈的容量已满,因此入栈操作会抛出RuntimeException: 栈已满的异常。代码如下:

ArrayStack stack = new ArrayStack(3);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);

执行上述代码会抛出如下异常信息:

Exception in thread "main" java.lang.RuntimeException: 栈已满
    at ArrayStack.push(ArrayStack.java:18)
    at Main.main(Main.java:9)

以上就是Java实现顺序栈示例代码的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现顺序栈的示例代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    下面我为您详细讲解“linux(centOS7)安装JDK、Tomcat、Mysql搭建Java Web项目运行环境”的完整攻略。 1. 安装JDK 下载JDK 前往Oracle官网下载Java SE Development Kit(JDK),版本为jdk-11.0.11。 安装JDK 使用如下命令进行安装: tar -zxvf jdk-11.0.11_li…

    Java 2023年5月19日
    00
  • Java的Struts框架报错“NullActionFormException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“NullActionFormException”错误。这个错误通常由以下原因之一起: 表单对象为空:如果表单对象为空,则可能会出现此。在这种情况下,需要检查表单对象以解决此问题。 配置错误:如果配置文件中没有正确配置,则可能会出现此。在这种情况下,需要检查文件以解决此问题。 以下是两个实例: 例 1 如果表单对…

    Java 2023年5月5日
    00
  • Java简单工厂模式详细解释

    Java简单工厂模式详细解释 简介 简单工厂模式是创建型模式的一种,它提供了一种创建对象的最佳方法。在简单工厂模式中,我们在创建对象的时候不会对客户端暴露创建逻辑,而是通过一个公共的静态方法返回一个新的对象。简单工厂模式属于类的创建型模式,在工厂类中,选择创建哪一种产品类的实例化是由工厂来决定的,而并非由客户端来决定。 实现 简单工厂模式的实现需要下面几个角…

    Java 2023年5月19日
    00
  • 【MongoDB for Java】Java操作MongoDB数据库

    MongoDB是开源的、高性能的文档型数据库,而Java作为一种流行的编程语言,有丰富的工具和库支持MongoDB。本文将详细说明Java操作MongoDB数据库的完整攻略,具体过程包括以下几个步骤: 安装MongoDB驱动 Java操作MongoDB需要先安装MongoDB的Java驱动,可以通过Maven等依赖工具导入: <dependency&g…

    Java 2023年6月1日
    00
  • java8 Math新增方法介绍

    Java8 Math新增方法介绍 Java8中Math类新增了一些数学方法,让我们能够更加便捷地进行数学计算。这篇文章将介绍Java8 Math新增的一些常用方法,以及相应的示例说明。 Math.addExact(int x, int y) 这个方法是将两个int类型的数相加,并返回它们的和。如果溢出,即产生一个结果超出了int类型的最大值或最小值范围,将会…

    Java 2023年5月26日
    00
  • js 生成随机汉字的问题

    让我们来详细讲解一下“JS生成随机汉字的问题”。 随机生成汉字 在js中生成随机汉字,通常需要使用Unicode编码表中汉字的编码范围。根据Unicode编码表,汉字的编码范围为\u4e00到\u9fa5,因此,我们可以使用js的Math.random()函数生成一个随机数,并将其转换为汉字。 function randomChinese() { var i…

    Java 2023年6月15日
    00
  • SSh结合Easyui实现Datagrid的分页显示

    下面是关于“SSh结合Easyui实现Datagrid的分页显示”的完整攻略。 1. 准备工作 首先,你需要在服务器上部署好SSH,并安装好Easyui。其中Easyui用于实现Datagrid的分页等相关功能。 2. 创建Datagrid 在创建Datagrid时,我们需要在HTML页面中添加以下代码: <table id="datagri…

    Java 2023年5月20日
    00
  • java基础之Collection与Collections和Array与Arrays的区别

    Java基础之Collection与Collections和Array与Arrays的区别 在Java中,有些名字相似的类是不同的,有些则是同名类的一个是接口、一个是静态工具类。Collection与Collections以及Array与Arrays就是这样的一个示例。 Collection和Collections Collection是Java的一个接口,…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部