JAVA 100道题(14)

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

下面是一个简单的Java程序,使用LinkedList来实现一个堆栈(Stack)数据结构。在这个程序中,我们定义了一个MyStack类,它包含了一些基本的堆栈操作,如push(压栈)、pop(出栈)、peek(查看栈顶元素)和isEmpty(检查堆栈是否为空)。

 

java复制代码

import java.util.LinkedList;
public class MyStack<T> {
private LinkedList<T> stack;
public MyStack() {
this.stack = new LinkedList<>();
}
// 压栈操作
public void push(T item) {
stack.addFirst(item);
}
// 出栈操作
public T pop() {
if (!isEmpty()) {
return stack.removeFirst();
} else {
throw new RuntimeException("Stack is empty");
}
}
// 查看栈顶元素
public T peek() {
if (!isEmpty()) {
return stack.getFirst();
} else {
throw new RuntimeException("Stack is empty");
}
}
// 检查堆栈是否为空
public boolean isEmpty() {
return stack.isEmpty();
}
// 打印堆栈内容
public void printStack() {
System.out.println(stack);
}
public static void main(String[] args) {
MyStack<Integer> stack = new MyStack<>();
// 压栈操作
stack.push(1);
stack.push(2);
stack.push(3);
// 打印堆栈内容
stack.printStack();
// 查看栈顶元素
System.out.println("Top element: " + stack.peek());
// 出栈操作
stack.pop();
// 打印堆栈内容
stack.printStack();
// 检查堆栈是否为空
System.out.println("Is stack empty? " + stack.isEmpty());
}
}

在这个程序中,我们创建了一个MyStack类,并使用LinkedListaddFirst方法来实现压栈操作,removeFirst方法来实现出栈操作,getFirst方法来实现查看栈顶元素的操作。在main方法中,我们创建了一个MyStack对象,并进行了一些基本的堆栈操作,包括压栈、查看栈顶元素、出栈和检查堆栈是否为空。

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

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

相关文章

从零开始学习在VUE3中使用canvas(五):globalCompositeOperation(图形混合)

一、简介 通过设置混合模式来改变图像重叠区域的显示方式。 const ctx canvas.getContext("2d");ctx.globalCompositeOperation "source-over"; 二、属性介绍 source-over 这是默认的复合操作。将源图像绘制到目标图像上&#xff0c;保留目标图像的不透…

1011: 【C1】【循环】【for】财务管理

题目描述 Larry今年毕业并找到了一份工作。他赚很多钱&#xff0c;但似乎总是不够。Larry认为他需要控制他的投资以解决自己的财务问题。Larry拿到了自己的银行账户详单&#xff0c;想看看自己有多少钱。请帮助Larry写一个程序&#xff0c;通过过去12个月中每月的月末结余&…

IPV6协议之DHCPV6

目录 背景&#xff1a; 一、DHCPV6概述 DHCPv6 Client&#xff1a; DHCPv6 Relay&#xff1a; DHCPv6 Server&#xff1a; 二、DHCPV6工作原理 DHCPV6无状态自动分配 三、DHCP基础配置 服务端 四、DHCPV6地址更新时间&#xff08;DHCPV4租期&#xff09; 五、DHCPV6…

idea 开发serlvet篮球秩序册管理系统idea开发mysql数据库web结构计算机java编程layUI框架开发

一、源码特点 idea开发 java servlet 篮球秩序册管理系统是一套完善的web设计系统mysql数据库 系统采用serlvetdaobean mvc 模式开发&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 servlet 篮…

☆【前后缀】【双指针】Leetcode 42. 接雨水

【前后缀】【双指针】Leetcode 42. 接雨水 解法1 前后缀分解解法2 双指针 ---------------&#x1f388;&#x1f388;42. 接雨水 题目链接&#x1f388;&#x1f388;------------------- 解法1 前后缀分解 维护一个前缀&#xff08;左侧最高&#xff09;后缀&#xff08;右侧…

【工具】mac 环境配置

【待补充 】 一、maven配置 vim ~/.bash_profile export M3_HOME/Users/chenyang/java_utils/apache-maven-3.6.1 export PATH$PATH:$M3_HOME/bin ​ //mvn -v提示Permission denied 没有权限访问 chmod ax /Users/chenyang/java_utils/apache-maven-3.6.1/bin/mvn 二、java…

【Linux系统编程(进程编程)】进程的退出:父进程等待子进程的退出之僵尸进程与孤儿进程

文章目录 一、进程退出1.1、进程正常退出方式1.2、异常退出 二、父进程等待子进程退出&#xff08;一&#xff09;2.1、为什么要等待子进程退出2.2、&#xff08;1&#xff09;父进程等待子进程退出并收集子进程的退出状态如何等待wstatus空wstatus非空 2.3、&#xff08;2&…

LeetCode---389周赛

题目列表 3083. 字符串及其反转中是否存在同一子字符串 3084. 统计以给定字符开头和结尾的子字符串总数 3085. 成为 K 特殊字符串需要删除的最少字符数 3086. 拾起 K 个 1 需要的最少行动次数 一、字符串及其反转中是否存在同一子字符串 直接暴力枚举即可&#xff0c;代码…

【PHP + 代码审计】数组函数

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

Redis 教程系列之Redis 数据备份与恢复(五)

Redis SAVE 命令用于创建当前数据库的备份。 语法 redis Save 命令基本语法如下&#xff1a; redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文件。 恢复数据 如果需要恢复数据&#xff0c;只需将备份…

力扣面试150 x 的平方根 二分 换底法 牛顿迭代法 一题多解

Problem: 69. x 的平方根 思路 &#x1f468;‍&#x1f3eb; 参考题解 &#x1f496; 袖珍计算器算法 class Solution {public int mySqrt(int x){if (x 0)return 0; // Math.exp(3)&#xff1a;e的三次方int ans (int) Math.exp(0.5 * Math.log(x));return (long) (an…

【数据库】MySQL库与表的基本操作

目录 一、数据库概述 1. SQL分类 2. 存储引擎 二、库的操作 1. 创建数据库 2. 字符集与校验规则 3. 查看数据库 4. 修改数据库 5. 删除数据库 6. 查看连接情况 三、表的操作 1. 创建数据表 2. 查看数据表 3. 修改数据表 4. 删除数据表 一、数据库概述 1. SQL分…

PhpSpreadsheet 读取 excel 里面的图片

使用 phpSpreadSheet 插件去读取 excel 里面的图片时发现坑点很多&#xff0c;这里做一个总结 我使用的是 tp 框架 一、安装 phpSpreadSheet 插件 在composer.json配置 "require": {..."phpoffice/phpspreadsheet": "*" } composer安装 co…

配置环境安装包遇到的问题

1. error: could not install packages due to an oserror: [errno 28] no space left on device 说是磁盘占用过多&#xff0c;查看磁盘占用情况。 df -h 果然占比100% 清理了众多缓存.cache都不行&#xff0c;而且其他利用率很低&#xff0c;可能是pip install的过程中使…

代码随想录刷题随记4-链表

代码随想录刷题随记4 文章目录 代码随想录刷题随记424. 两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 24. 两两交换链表中的节点 leetcode 链接 没什么技巧&#xff0c;主要考察链表操作的熟练程度 class Solution { public:ListNod…

qt 实现 轮播图效果,且还有 手动 上一页和下一页 已解决

QT中有 轮播图的需求&#xff0c;按照正常html版本 。只需要配置数组就能搞定&#xff0c;但是c qt版本 应该用什么了。 第一想到的是采用定时器。 // 定时器初始化{m_pTime new QTimer(this);m_pTime->start(4 * 1000);//启动定时器并设置播放时间间隔m_pAutoFlag true;/…

TikCloud天玑云微服务技术选型

单体多机负载均衡详见:PUSDN 技术选型 平台采用Java开发语言,具有可移植性、跨平台等特性。同时,平台提供跨平台技术解决方案、Windows、MacOS、Linux多端互通,pgz-serial串口、建行POS收银等,都是基于本平台衍生的跨平台案例。 功能介绍使用技术优势/特性开发语言Java主…

数据库查询所有表和字段

查询所有表和字段 介绍 有时候可能要展示所有的表以及所有的字段&#xff0c;下面介绍oracle和mysql的方法以及代码 oracle sql 查询所有表 select Table_NAME from all_tables where owner 表空间 查询字段 SELECT * FROM user_tab_columns where table_name upper(表名…

【python】python turtle绘制坤坤打球

一、效果图&#xff1a; 二、准备工作 &#xff08;1)、导入必要的模块&#xff1a; 代码首先导入了需要使用的模块&#xff1a;requests、lxml和csv。 import requests from lxml import etree import csv 如果出现模块报错 进入控制台输入&#xff1a;建议使用国内镜像源 p…

智慧公厕:跨界融合,打造智慧城市新名片

随着城市化进程的不断加快&#xff0c;公共厕所建设成为一个亟待解决的问题。传统的公厕存在着管理繁琐、卫生差、服务不到位等一系列问题&#xff0c;与城市发展的节奏不协调。为此&#xff0c;推进新型智慧公厕建设成为了一个重要的解决方案。智慧公厕的建设需要推进技术融合…