JAVA 100道题(14)

14.编写一个程序,使用LinkedList实现一个简单的堆栈(Stack)数据结构。

堆栈(Stack)是一种遵循后进先出(LIFO,Last In First Out)原则的数据结构。下面是一个使用Java的LinkedList类来实现堆栈的简单示例:

复制代码

java复制代码

|---|-----------------------------------------------------------------|
| | import java.util.LinkedList; |
| | |
| | public class Stack<T> { |
| | private LinkedList<T> list; |
| | |
| | public Stack() { |
| | list = new LinkedList<>(); |
| | } |
| | |
| | // 入栈操作 |
| | public void push(T item) { |
| | list.addFirst(item); |
| | } |
| | |
| | // 出栈操作 |
| | public T pop() { |
| | if (isEmpty()) { |
| | throw new RuntimeException("Stack is empty"); |
| | } |
| | return list.removeFirst(); |
| | } |
| | |
| | // 查看栈顶元素 |
| | public T peek() { |
| | if (isEmpty()) { |
| | throw new RuntimeException("Stack is empty"); |
| | } |
| | return list.getFirst(); |
| | } |
| | |
| | // 检查栈是否为空 |
| | public boolean isEmpty() { |
| | return list.isEmpty(); |
| | } |
| | |
| | // 获取栈的大小 |
| | public int size() { |
| | return list.size(); |
| | } |
| | |
| | public static void main(String[] args) { |
| | Stack<Integer> stack = new Stack<>(); |
| | |
| | // 入栈操作 |
| | stack.push(1); |
| | stack.push(2); |
| | stack.push(3); |
| | |
| | System.out.println("Stack size: " + stack.size()); |
| | |
| | // 查看栈顶元素 |
| | System.out.println("Top element: " + stack.peek()); |
| | |
| | // 出栈操作 |
| | System.out.println("Popped element: " + stack.pop()); |
| | |
| | System.out.println("Stack size after pop: " + stack.size()); |
| | } |
| | } |

在这个程序中,我们定义了一个泛型类Stack<T>,它使用LinkedList作为内部存储结构。push方法用于将元素添加到栈顶,pop方法用于从栈顶移除并返回元素,peek方法用于查看栈顶元素但不移除它,isEmpty方法用于检查栈是否为空,size方法用于获取栈的大小。

在main方法中,我们创建了一个Stack<Integer>对象,并进行了入栈、查看栈顶元素和出栈操作

相关推荐
2601_9669496511 分钟前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
Mikko714 分钟前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端
.Bryce.20 分钟前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测
SL_staff32 分钟前
JVS-APS的7个刚性约束设计:从无限产能幻觉到可执行排产的工程实践
java·spring cloud·全栈
神仙别闹1 小时前
基于Python实现英词语自动对齐系统
开发语言·python
代码山河2 小时前
基本类型转换:自动类型转换与强制类型转换
java·学习·架构·教程·面向对象·项目
老歌老听老掉牙2 小时前
圆柱端面四平面交线及其在yoz面投影的几何解析与 Python 实现
开发语言·python·平面
我要见SA姐12 小时前
Chrome 扩展安全攻防实录:从权限滥用到供应链投毒
运维·人工智能·python·机器学习·自动化
2601_962885722 小时前
给 backtrader 接 A 股数据:用 AlphaFeed 喂PandasData
python
中二骚年3 小时前
Windows 安全中心 / 防火墙故障,calc和Microsoft Store,终端(管理员)无法正常打开。 原因 + 修复方案
windows·安全·microsoft