Java实现一个栈

目录

概念与结构 

实现一个栈 

创建一个栈类

实现栈的基本操作

 测试栈类


概念与结构 

概念与结构
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶
出栈:栈的删除操作叫做出栈。出数据也在栈顶

实现一个栈 

创建一个栈类

public class MyStack {private int maxSize;private int top;private int[] stackArray;public MyStack(int size) {maxSize = size;stackArray = new int[maxSize];top = -1;}
}

实现栈的基本操作

包括入栈(push)、出栈(pop)和查看栈顶元素(peek)。

    // 判断栈是否为空public boolean isEmpty() {return top == -1;}// 判断栈是否已满public boolean isFull() {return top == maxSize - 1;}// 入栈public void push(int value) {if(!isFull()){top++;stackArray[top] = value;}else {System.out.println("栈已满,无法添加新元素");}}// 出栈public int pop(){if(isEmpty()){return stackArray[top--];}else{System.out.println("栈为空,无法弹出元素");return -1;}}// 栈顶public int peek(){if(!isEmpty()){return stackArray[top];}else {System.out.println("栈为空,无法弹出元素");return -1;}}

 测试栈类

public class Main {public static void main(String[] args) {MyStack stack = new MyStack(5);stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);System.out.println("栈顶元素:" + stack.peek()); // 输出:栈顶元素:5System.out.println("出栈元素:" + stack.pop()); // 输出:出栈元素:5System.out.println("出栈元素:" + stack.pop()); // 输出:出栈元素:4System.out.println("栈顶元素:" + stack.peek()); // 输出:栈顶元素:3}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/478131.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HashCat报错

HashCat执行命令 hashcat -a 3 -m 17225 -2 ?l?u $pkzip2$3*1*1*0*0*24*143c*4917*4bfe891c40b54ed8a613dc05c1a5a5c6df68da07f2a00e55d705a5bc04f3c149a53ab891*1*0*8*24*2e57*490e*028de43f9edfed13437c0964625b78391e2876248d3362b240c2bbfd7dbc3ff022ef2e07*2*0*67*5b*d6…

一休哥助手网页版如何使用

一休哥助手网页版可以使用GPT4提问了,具体操作流程如下: 1.登录网页版一休哥助手(首次打开页面时,初始化久一点,请耐心等一下) https://www.fudai.fun 2.登录后就可以使用GPT4了 3.你还可以自定义系统角色…

BI 数据分析,数据库,Office,可视化,数据仓库

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 Mysql 8.0 54集 Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战, ETL Informatica 数据仓库案例实战 51集 Excel 2021实操 100集, Excel 2021函数大全 80集 Excel 2021…

重启项目后Session依旧存在的问题研究

1. 背景 最近在开发对接智谱AI超拟人大模型&#xff0c;放了方便在pom.xml中引入了热部署相关的依赖。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</sco…

4G/5G卡使用 EC200-CN

在串口中查看4G卡网口如下为enx020c29a39b6d 输入如下命令启动自动获取3s后按ctrlc 输入minicom -D /dev/ttyUSB2后先输入&#xff1a; ATE1启动回显。 ATqnetdevctl1,1,1播号回复ok表示成功。 查看ip已成功获取

SpringBoot日期格式全网最全

前言 SpringBoot默认的时期返回格式是2024-02-19T05:56:12.000+00:00这种,当然这也是分什么类型的,比如Date类型的SpringBoot默认返回2024-02-19T05:56:12.000+00:00,LocalDateTime类型的SpringBoot默认返回2024-02-24T13:56:15 那么这种格式在我们日常开发中不管是可读性…

linux基础学习(10):基本权限与相关命令

1.基本权限 用ls -l查看当前目录文件时&#xff0c;可以看到文件的基本权限 其由10位组成&#xff0c;其中&#xff1a; 第1位&#xff1a;代表文件类型。 - d lbc普通文件目录文件软链接文件块设备文件&#xff0c;也就是硬盘等存储设备的文件字符设备文件&#xff0c;是鼠…

Vue常用内置指令,代码Demo演示和讲解

文章目录 一、v-text二、v-html三、v-bind四、v-model五、v-on六、v-show七、v-if、v-else八、v-for九、v-cloak 一、v-text 作用&#xff0c;更改标签的显示值使用 v-text 会读取 data中的变量值如果变量存在替换原来的值&#xff0c;如果不存在则报错 <!DOCTYPE html>…

Python实现时间序列分析指数平滑模型(ExponentialSmoothing算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 时间序列分析中的指数平滑模型&#xff08;Exponential Smoothing&#xff09;是一种统计预测方法&…

网络安全综合实验

1.实验拓扑 在这里注意因为第四个要求配置双击热备&#xff0c;我们可以第一时间配置&#xff0c;避免二次重复配置消耗时间 4、FW1和FW3组成主备模式的双机热备 具体配置位置在系统-->高可靠性-->双机热备-->配置 这里上行链路有两组&#xff0c;分别为电信和移动&…

Java的Lock

写在前面 Java本身提供了很多的锁。每种锁因其特性的不同。在不同的场景能展现出不同效率。 Java中往往是按照是否含有某一种特性来定义锁。通过特性将锁分类,再使用对比的方式来看 1 乐观锁和悲观锁 乐观锁和悲观锁是一种广义上的概念,提现了看待线程同步的不同角度。在Ja…