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日

相关文章

  • Java 详解如何获取网络接口信息

    获取网络接口信息是Java程序开发过程中非常常见且重要的需求。Java中可以使用网络接口类(NetworkInterface)获取系统中所有网络接口的信息。下面是获取网络接口信息的攻略。 1.导入jar包 在Java编写获取网络接口信息的程序之前,需要先导入网络接口类的jar包:java.net。 2.获取网络接口信息 要获取系统中所有的网络接口信息,可以使…

    Java 2023年5月20日
    00
  • Spring Boot日志控制详解

    Spring Boot日志控制详解 简介 在应用程序中,日志是非常重要的组成部分。通过日志,我们可以了解应用程序中所发生的事件及其执行状态。Spring Boot提供了非常方便的日志控制功能,使得应用程序中的日志记录变得更加简单、可读且易于管理。 Spring Boot默认日志记录器 Spring Boot默认使用的是Logback日志框架,它拥有极高的性能…

    Java 2023年6月1日
    00
  • 基于springEL表达式详解及应用

    1. 什么是SpringEL表达式 SpringEL表达式全称Spring Expression Language,是Spring框架中的一种表达式语言,用于在运行时访问和操作对象的属性及执行方法。 SpringEL表达式的语法大致可以分为如下几个部分: 取值表达式(Value Expression) 属性访问表达式(Property Access Expr…

    Java 2023年6月15日
    00
  • java基于正则表达式实现时间日期的常用判断操作实例

    Java基于正则表达式实现时间日期的常用判断操作实例 正则表达式是一种用来描述字符串匹配规则的工具,它可以在Java中被广泛地应用。通过正则表达式,我们可以对时间日期进行常用的判断操作。下面是Java基于正则表达式实现时间日期的常用判断操作实例。 日期格式 在进行时间日期的判断操作之前,我们需要知道日期格式,以下是时间日期常用的格式: yyyy-MM-dd …

    Java 2023年5月20日
    00
  • SpringBoot核心@SpringBootApplication使用介绍

    Spring Boot 是一个快速开发的框架,它简化了 Spring 应用程序的搭建和开发。其中,@SpringBootApplication 是 Spring Boot 的核心注解,本文将详细讲解其使用方法。 @SpringBootApplication 注解 @SpringBootApplication 注解是一个组合注解,包含了 @Configurat…

    Java 2023年5月15日
    00
  • javascript实现简易计算器的代码

    下面是Javascript实现简易计算器的完整攻略: 步骤一:HTML结构 首先我们需要在HTML中创建一个计算器的基本结构,包括按钮、显示器等元素。可以参考下面的代码: <!DOCTYPE html> <html> <head> <title>简易计算器</title> </head>…

    Java 2023年6月15日
    00
  • 浅谈JVM中的JOL

    下面是关于“浅谈JVM中的JOL”的完整攻略。 一、JVM与内存模型 1.1 JVM的组成 JVM由类加载器、运行时数据区、执行引擎、本地方法接口和本地化支持等多个组成部分构成。其中,内存模型(运行时数据区)承载了程序的执行和运行过程,是JVM最为重要的组成部分。 1.2 内存模型的划分 JVM的内存模型被划分为若干个不同的区域,主要包括堆内存、非堆内存(包…

    Java 2023年5月26日
    00
  • Java性能调优的作用是什么?

    Java性能调优的作用是为了提高Java应用程序的性能,使其能够更高效、更稳定地运行。通过调优,我们可以识别性能瓶颈所在,并使用合适的优化方法来解决问题,从而提高应用程序的响应速度、吞吐量和资源利用率,减少内存占用和CPU负载等问题。 下面是Java性能调优的完整使用攻略: 1. 确认性能问题 在开始性能调优之前,首先要确定是否存在性能问题。性能问题主要体现…

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