首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
input
python
tree
frameworks
netty
chat
solr
emoji
yaml
random
split
substring
format
default
datetime
cPlusPlus
bitmap
perl
golang
nodejs
httpclient
regex
fetch
expression
cookie
function
timezone
python2
testing
usb
import
list
express
install
heap
byte
bash
integer
bit
php
hashset
dockerfile
get
loops
range
buffer
foreach
config
metadata
process
object
include
less
jar
case
eval
rsa
post
const
email
heatmap
sum
timestamp
window
数组
search
js
blob
command
schema
bytecode
string
javascript
grid
python3
io
plugins
cmd
php5
当前位置:
开发笔记
>
编程语言
> 正文
java实现栈,队列数据结构
作者:独角式恋爱牛仔 | 来源:互联网 | 2023-10-12 13:35
java实现栈publicclassStackForInt{储存数据的栈privateNodeStackForInt[];栈的最大容量privateintmaxSize
//java实现栈
public class StackForInt
{
// 储存数据的栈
private Node
StackForInt[];
// 栈的最大容量
private int maxSize;
// 栈的当前容量
private int size;
//分别保存node中最大值和最小值,在栈push和pop时都要来保存这个值,特别是在pop时,当出栈的数是最大或者最小时,就需要更新
//maxNode,minNode.代码中还没有实现,后续增加。
private T maxNode;
private T minNode;
public T getMax(){
return maxNode;
}
public T getMin(){
return minNode;
}
// 不传参数,默认栈的最大容量为100
public StackForInt() {
this(100);
}
public StackForInt(int maxSize) {
// 如果传入的参数小于或等于0,则设置最大容量为100
if (maxSize <&#61; 0)
maxSize &#61; 100;
this.maxSize &#61; maxSize;
}
// 初始化栈&#xff0c;在堆中先申请好内存空间
public void initStackForInt() {
Node
[] StackForIntNodes &#61; new Node[maxSize];
StackForInt &#61; StackForIntNodes;
for (int i &#61; 0; i
StackForInt[i] &#61; new Node
();
}
// 栈的当前大小为0
size &#61; 0;
}
// 栈的基本方法之一&#xff0c;获得栈顶元素
public Node
getTop() {
// 栈中没有元素&#xff0c;则返回空
if (size &#61;&#61; 0)
return null;
return StackForInt[size-1];
}
// 栈的基本方法之一&#xff0c;入栈
public boolean push(Node
StackForIntNode) {
// 栈已满&#xff0c;入栈失败
if (size >&#61; maxSize)
return false;
size&#43;&#43;;
StackForInt[size - 1] &#61; StackForIntNode;
return true;
}
// 栈的基本方法之一&#xff0c;出栈
public Node
pop() {
// 如果栈已空&#xff0c;则返回null
if (size <&#61; 0)
return null;
size--;
return StackForInt[size];
}
// 栈是否为空
public boolean isEmpty() {
if (size <&#61; 0)
return true;
return false;
}
// 栈的基本方法之一&#xff0c;遍历栈
public void traverse() {
for (int i &#61; 0; i
System.out.println(StackForInt[i].get());
}
}
/**
* &#64;param args
*/
public static void main(String[] args) {
StackForInt
StackForInt &#61; new StackForInt
();
StackForInt.initStackForInt();
StackForInt.push(new Node
("Anybody1"));
StackForInt.push(new Node
("Anybody2"));
StackForInt.push(new Node
("Anybody3"));
StackForInt.traverse();
}
static class Node
{
//要存储的信息
private T nodeinfo;
public Node(){
this(null);
}
public Node(T info){
this.nodeinfo &#61; info;
}
//set方法
public void set(T info){
this.nodeinfo &#61; info;
}
//get方法
public T get(){
return nodeinfo;
}
}
}
java
队列
int
push
get
static
main
string
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
default
Java集合框架特性详解与开发实践笔记
Java集合框架特性详解与开发实践笔记 ...
[详细]
蜡笔小新 2024-11-02 12:55:56
function
探索偶数次幂二项式系数的求和方法及其数学意义
探索偶数次幂二项式系数的求和方法及其数学意义 ...
[详细]
蜡笔小新 2024-11-05 15:38:39
format
Java中如何正确使用return语句
本文深入探讨了Java中正确使用return语句的方法。通过详尽的示例和解释,帮助读者理解return语句在不同场景下的应用,提升代码质量和可读性。希望读者在阅读后能够掌握return语句的最佳实践,从而在实际开发中更加得心应手。 ...
[详细]
蜡笔小新 2024-11-05 14:48:00
format
捕获并处理用户输入数字时的异常,提供详细的错误提示与指导
在用户输入数字时,程序能够有效捕获并处理各种异常情况,如非法字符或格式错误,并提供详尽的错误提示和操作指导,确保用户能够准确输入有效的数字数据。通过这种方式,不仅提高了程序的健壮性和用户体验,还减少了因输入错误导致的系统故障。具体实现中,使用了Java的异常处理机制,结合Scanner类进行输入读取和验证,确保了输入的合法性和准确性。 ...
[详细]
蜡笔小新 2024-11-05 14:46:13
timezone
深入解析 Java UTC 时间处理技术与应用
深入解析 Java UTC 时间处理技术与应用 ...
[详细]
蜡笔小新 2024-11-05 13:08:58
format
Java SE 文件操作类详解与应用
### Java SE 文件操作类详解与应用#### 1. File 类##### 1.1 File 类概述File 类是 Java SE 中用于表示文件和目录路径名的对象。它提供了丰富的方法来操作文件和目录,包括创建、删除、重命名文件,以及获取文件属性和信息。通过 File 类,开发者可以轻松地进行文件系统操作,如检查文件是否存在、读取文件内容、列出目录下的文件等。此外,File 类还支持跨平台操作,确保在不同操作系统中的一致性。 ...
[详细]
蜡笔小新 2024-11-04 13:57:39
input
利用UDP协议高效传输文件
通过采用用户数据报协议(UDP),本研究设计并实现了一种高效的文件传输方法。在发送端,系统利用Java编程语言中的相关类库,如`File`和`FileInputStream`,实现了文件的读取与分段处理,确保了数据的快速传输。该方法不仅提高了传输效率,还降低了网络拥塞的风险,适用于大规模文件传输场景。 ...
[详细]
蜡笔小新 2024-11-03 18:08:01
function
处理大数相加的函数式方法与技巧
在处理大数相加的问题时,有许多方法可以借鉴。本文介绍了两种不同的函数式编程方法:一种是从网络上找到的经典实现,另一种是作者自行设计的创新方案。通过函数式编程的方式重新实现了这两种方法,其中经典实现简洁明了,而创新方案则在性能和可读性方面有所提升。这些方法不仅适用于大数相加,还可以扩展应用于其他数值计算场景。 ...
[详细]
蜡笔小新 2024-11-05 19:50:19
function
使用JavaScript生成Java兼容的UUID代码实现与优化技巧
本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ...
[详细]
蜡笔小新 2024-11-05 18:19:54
datetime
Java 中 ZonedDateTime 类的天数方法详解及示例代码
Java 中 ZonedDateTime 类的天数方法详解及示例代码 ...
[详细]
蜡笔小新 2024-11-05 11:41:20
datetime
每日精选Codeforces训练题:1119E(贪心算法)、821C(栈模拟)和645D(拓扑排序)
题目涉及三种不同类型的算法问题:1119E(贪心算法)、821C(栈模拟)和645D(拓扑排序)。其中,1119E的问题背景是有n种不同长度的棍子,长度分别为2^0, 2^1, …, 2^(n-1),每种棍子的数量为a[i]。任务是计算可以组成的三角形数量。根据三角形的性质,任意两边之和必须大于第三边。该问题可以通过贪心算法高效解决,通过合理选择棍子组合来最大化三角形的数量。 ...
[详细]
蜡笔小新 2024-11-03 11:42:58
datetime
2021-2022 ACM集训队月度编程挑战赛第二轮:最大值与最小值的选择
在2021-2022 ACM集训队月度编程挑战赛第二轮中,题目“最大值与最小值的选择”要求参赛者处理一个包含n个元素的数组,并给定一个整数k。任务是通过选择特定的子数组,计算并返回这些子数组的最大值和最小值之间的差值。该问题考验了选手对数组操作和优化算法的理解与应用能力。 ...
[详细]
蜡笔小新 2024-11-03 00:35:21
default
如何在 Node.js 环境中将 CSV 数据转换为标准的 JSON 文件格式?
如何在 Node.js 环境中将 CSV 数据转换为标准的 JSON 文件格式? ...
[详细]
蜡笔小新 2024-11-02 17:32:17
fetch
分布式开源任务调度框架 TBSchedule 深度解析与应用实践
本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ...
[详细]
蜡笔小新 2024-11-02 11:59:52
format
Prim算法优化实现:基于优先队列的最小生成树构建方法
Prim算法在处理稠密图时表现出色,尤其适用于边数远多于顶点数的情形。传统实现的时间复杂度为 \(O(n^2)\),但通过引入优先队列进行优化,可以在点数为 \(m\)、边数为 \(n\) 的情况下显著降低时间复杂度,提高算法效率。这种优化方法不仅能够加速最小生成树的构建过程,还能在大规模数据集上保持良好的性能表现。 ...
[详细]
蜡笔小新 2024-11-01 16:06:14
独角式恋爱牛仔
这个家伙很懒,什么也没留下!
Tags | 热门标签
input
python
tree
frameworks
netty
chat
solr
emoji
yaml
random
split
substring
format
default
datetime
cPlusPlus
bitmap
perl
golang
nodejs
httpclient
regex
fetch
expression
cookie
function
timezone
python2
testing
usb
RankList | 热门文章
1
Nexus3.0.0+Maven的使用(一)
2
第1二分查找
3
flashpaper打印机没有被正确安装_爱普生打印机如何安装 爱普生打印机安装步骤【详解】...
4
java中对List对象集合进行排序
5
文献精读——(第十四篇)目标检测综述
6
Dolby Digital(Dolby Surround Digital,杜比数码环绕声)
7
学习MySQL数据库从入门到精通的视频教程
8
php编号怎么设置数字(php怎么设置编码格式)
9
手把手教给你使用putty和xshell远程连接linux
10
开发笔记:jQuery Colorpicker Spectrum api 中文 文档 属性 事件 方法
11
【新技术】SpringMVC+Mybatis框架整合源码 项目 下载 rest websocket html5
12
MFC安装MSCOMM控件(解决没有put_PortOpen、get_PortOpen等函数的问题)
13
团队项目——NABCD分析
14
azure云上oracle11.2.0.4里dataguard归档日志传输1034问题详
15
对比keepalive路由缓存设置的2种方式
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有