链表模拟栈
定义节点
class Node {var num: Int = _var next: Node = _def this(num: Int) {thisthis.num = num}override def toString: String = s"num=[${this.num}]"
}
定义方法
class LinkStack {private var head = new Node(0)def getHead: Node = head//判断是否为空def isEmpty: Boolean = {head.next == null}//无需判断是否为满//查看当前链表def list(): Unit = {if (isEmpty) {println(s"栈已空")return}var temp = head.nextwhile (temp.next != null) {println(s"${temp}")temp = temp.nextThread.sleep(500)}}//入栈def push(value: Int): Unit = {if (isEmpty) head.next = new Node(1)//使用头插法val newNode = new Node(value)newNode.next = head.nexthead.next = newNode}//出栈def pop(): Int = {if (isEmpty) throw new RuntimeException("栈空")val temp = head.nextif (temp.next != null) {println(s"弹栈=>${temp.num}")head = temp.next} else {println(s"弹栈=>${temp.num}")}temp.num}
}
主函数
package Algotithmobject LinkedListStackDemo {def main(args: Array[String]): Unit = {val stack = new LinkStackstack.push(1)stack.push(3)println(s"原链表=====")stack.list()println(s"弹栈一次=====")stack.pop()stack.list()println(s"弹栈二次=====")stack.pop()stack.list()}}
结果
总结
1、入栈时使用头插法,将新节点插入在 head头节点后面
2、 pop出栈 时需要对当前链表进行非空判定。如果取出后节点为空,则不需要对 head.next 进行赋值
相关文章:
链表模拟栈
定义节点 class Node {var num: Int _var next: Node _def this(num: Int) {thisthis.num num}override def toString: String s"num[${this.num}]" }定义方法 class LinkStack {private var head new Node(0)def getHead: Node head//判断是否为空def isEmp…...
MySQL基础篇:数据库概述和部署
SQL 概述 SQL,一般发音为sequel,SQL的全称Structured Query Language),SQL用来和数据库打交道,完成和数据库的通信,SQL是一套标准。但是每一个数据库都有自己的特性别的数据库没有,当使用这个数据库特性相关的功能,这…...
大数据面试题:MapReduce压缩方式
面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)Hadoop常见的压缩算法有哪些? 问过的一些公司:网易云音乐(2022.11),阿里(2020.…...
【ICer的脚本练习】“精通各种语言的hello world!“
系列的目录说明请见:ICer的脚本练习专栏介绍与全流程目录_尼德兰的喵的博客-CSDN博客 前言 这一节呢主要是检查一下Linux和win环境是不是能正常的支持咱们的脚本学习,所以来答应各种语言的hello world!,毕竟打印了就是学会了٩(๑❛ᴗ❛๑)۶…...
解决npm install报错: No module named gyp
今天运行一个以前vue项目,启动时报错如下: ERROR Failed to compile with 1 error上午10:19:33 error in ./src/App.vue?vue&typestyle&index0&langscss& Syntax Error: Error: Missing binding D:\javacode\Springboot-MiMall-RSA\V…...
Leetcode 面试题 17.01 不用加号的加法
设计一个函数把两个数字相加。不得使用 或者其他算术运算符。 示例: 输入: a 1, b 1 输出: 2 提示: a, b 均可能是负数或 0结果不会溢出 32 位整数 我的答案: 一、信息 1.设计一个函数把两个数相加 2.不得使用或者其他运算符 3.a,b均为负数或…...
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。 场景 生产环境出了一个偶现的数据库死锁问题,导致少部分业务处理失败。 分析特征之后,发现是多个线程并发执行同一个方法,更新关联的数据时可能会出现,把场景简化概括一下&…...
AMBEO 双声道空间音频现已迈进直播制作领域
图片来源:Unsplash,作者:Bence Balla-Schottner AMBEO 双声道空间音频现已迈进直播制作领域 为所有观众解锁更加身临其境的听觉体验 森海塞尔将功能强大的 AMBEO 双声道空间音频技术引入了广播电视直播应用领域,对所有体育赛事广…...
在VSCode上画UML的三个插件
2023年9月2日,周六晚上 因为写代理模式的博客时需要画UML,所以就在网上找了半天, 最后觉得VSCode上的这三个插件比较好用 目录 三个画UML的VSCode插件PlantUMLDraw.io IntegrationUMLet我个人推荐使用PlantUML 三个画UML的VSCode插件 Pla…...
Springboot - 1.什么是springboot
👀Spring的核心模块 Spring Framework是一个功能强大的开源框架,用于构建Java企业级应用程序。它提供了多个核心模块,每个模块都提供不同的功能,用于解决应用程序开发中的各种问题。以下是Spring Framework的核心模块的全面解析&…...
学习微信小程序 Westore
最近,接到小程序需求,并且是在以前公司老项目上改造,打开项目,发现却不是我想象中的那样,不是上来就是 Page({}),而是create(store,{}),纳尼???这什么玩意&am…...
CentOS上使用Docker安装和部署kkFileView
🎈1 参考文档 kkFileView官方文档 🚀2 安装kkFileView 拉取Redis镜像。 docker pull keking/kkfileview启动docker容器。 docker run -it -d -p 8012:8012 keking/kkfileview --restart always解释: docker run redis # 从kkfileview镜像运行…...
Level-based Foraging 多智能体游戏仿真环境
游戏场景测试 参考链接: https://kgithub.com/semitable/lb-foraging...
LeetCode-53-最大子数组和-贪心算法
贪心算法理论基础: 局部最优推全局最优 贪心无套路~ 没有什么规律~ 重点:每个阶段的局部最优是什么? 题目描述: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素&#…...
解决gitee仓库中 .git 文件夹过大的问题
最近,许多项目都迁移到gitee。使用的也越来越频繁,但是今天突然收到一个仓库爆满的提示。让我一脸懵逼。本文将详细为你解答,这种情况如何处理。 1、起因 我收到的报错如下: remote: Powered by GITEE.COM [GNK-6.4] remote: T…...
uniapp 开发小程序,封装一个方法,让图片使用线上地址
1.在main.js文件中,添加以下代码: 复制使用: // 图片使用网络地址 Vue.prototype.localImgSrc function(img){//项目的地址域名,例如百度return "https://baidu.cn/static/index/images/" img; }2.在页面中直接使用&…...
Android 12 源码分析 —— 应用层 三(SystemUIFactory及其Dependency解析)
Android 12 源码分析 —— 应用层 三(SystemUIFactory及其Dependency解析) 在上一篇文章中,介绍了SystemUI的启动流程,并且简单提及了Dagger2用来管理各个SystemUI中要用的依赖。而这部分代码就在:mContextAvailableC…...
考前冲刺上岸浙工商MBA的备考经验分享
2023年对于许多人来说都是不平凡的一年,历经三年的抗争,我们终于成功结束了疫情。而我也很幸运的被浙工商MBA项目录取,即将开始全新的学习生活。身为一名已在职工作6年的人,能够重回校园真是一种特别令人激动的体验。今天…...
XmlDocument.SelectNodes 不起作用
今天采用Xpath读取Xml节点,怎么都读不出。 问题分析: 错误代码如下: XmlDocument xmlD new XmlDocument();xmlD.PreserveWhitespace true;xmlD.LoadXml(xStr);xmlD.SelectNodes("job-scheduling-data/schedule/job");经排查 do…...
部署单点elasticsearch
部署elasticsearch 创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络 docker network create es-net 拉取镜像 我们采用elasticsearch的7.12.1版本的镜像 docker pull elasticsearch:7.12.1 运行 运行docker命令&a…...
ElementUI浅尝辄止16:Tag 标签
用于标记和选择。 1.如何使用? 由type属性来选择tag的类型,也可以通过color属性来自定义背景色。<el-tag>标签一</el-tag> <el-tag type"success">标签二</el-tag> <el-tag type"info">标签三</e…...
Java虚拟机(JVM)框架
见:GitHub - eHackyd/Java_JVM: Java虚拟机(JVM)框架的学习笔记...
配置Publisher 的编译规则
步骤 1:创建ROS Package 使用以下命令创建一个新的ROS软件包: catkin_create_pkg my_publisher_package roscpp std_msgs步骤 2:编辑 CMakeLists.txt 文件 打开您的ROS软件包的 CMakeLists.txt 文件,通常位于软件包的根目录。您…...
【SpringBoot】接口实现:SpringBoot实现博客系统的文章列表页接口代码
以下是一个简单的Spring Boot博客系统的文章列表页接口代码示例: java RestController RequestMapping("/articles") public class ArticleController {Autowiredprivate ArticleService articleService;GetMapping("/")public List<Artic…...
如何使用SQL系列 之 如何在SQL中插入数据
简介 结构化查询语言,通常被称为SQL,在允许您将数据插入表中方面提供了极大的灵活性。例如,你可以使用VALUES关键字指定单独的行数据,使用SELECT查询从现有表中复制整组数据,以及以使SQL自动插入数据的方式定义列。 …...
【LeetCode题目详解】1281题 整数的各位积和之差 面试题 01.01. 判定字符是否唯一 python题解(作业一二)
本文章以python为例! 一、力扣第1281题:整数的各位积和之差 问题描述: 1281. 整数的各位积和之差 给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 示例 1: 输入:n 234 输出…...
1.12 进程注入ShellCode套接字
在笔者前几篇文章中我们一直在探讨如何利用Metasploit这个渗透工具生成ShellCode以及如何将ShellCode注入到特定进程内,本章我们将自己实现一个正向ShellCodeShell,当进程被注入后,则我们可以通过利用NC等工具连接到被注入进程内,…...
MySQL 日志系统
重要日志模块 日志文件bin logredo log**关于循环写入和擦除的checkpoint 规则**redo log 怎么刷入磁盘的 binlog 和 redo log 有什么区别?undo log 日志文件 错误日志(error log): 错误日志文件对 MySQL 的启动、运行、关闭过程进…...
LeetCode刷题---Two Sum(一)
文章目录 🍀题目🍀解法一🍀解法二🍀哈希表 🍀题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每…...
算法通关村第十七关——插入区间
LeetCode435,给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 示例1: 输入:interva1s[[1,3],[6,9]],newInterva1[2,5] 输出:[[1,5],[6,9]] 解释:新区间[2,5]与[1,3]重…...
个人blog网站/友情链接交易
1.使用python创建一个类 以创建一个Dog的类为例: class Dog():def __init__(self, name, age):self.name nameself.age agedef sit(self):print(self.name.title() "is now sitting.")def roll_over(self):print(self.name rolled over!)创建了一个…...
搜索企业信息的网站/百度首页排名优化公司
Maven环境配置 下载mavenhttp://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz 上传到linux /usr/local/src目录下 解压 tar zxvf apache-maven-3.3.9-bin.tar.gz 移动目录mvapache-maven-3.3.9 /usr/local/ 进入目录cd/usr/loca…...
毕业设计wordpress/seo基础课程
2017年高考已经圆满结束,出国留学网高考频道第一时间为大家提供2017自贡高考成绩查询系统已开通 ,更多高考分数线及高考志愿填报信息请关注我们网站的更新!点击下面图片即可进入四川省教育考试院查询2017年高考成绩:开通时间&…...
wordpress简约高端企业通用产品/搜索引擎有哪几个网站
$(function () { $(#windowsMSG).window({ onBeforeClose: function () { //当面板关闭之前触发的事件 if (confirm(窗口正在关闭,请确认您当前的操作已保存。\n 是否继续关闭窗口?)) { …...
wordpress顶级主题/免费建立网站
PHP属于弱类型解释型语言,它的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, PHP只能被用户触发调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理。如果需要用PHP定时执行某些任务的话, 可以有如下方法:1、Li…...
做外贸主要看什么网站/湘潭关键词优化服务
加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。 身份认证是用来判断某个身份的真实性,确认身份后,系…...