栈我们可以理解为一个箱子,先放进去的东西在最下面,所以是一个先进后出的原则。下面我们看看一个简单的Demo。
package com.tu.test.stack;
public class Node {
int data;
Node pre;//previous Node
public Node(int data){
this.data = data;
}
}
package com.tu.test.stack;
public class MyStack {
private Node head;//first node
private Node current;//current node
/**
* put into stack
* @param data
*/
public void push(int data){
Node node = new Node(data);
if (head == null) {
head = node;
current = head;
} else {
node.pre = current;//current节点将作为当前节点的前驱动节点
current = node;//让current节点永远指向新添加的那个节点
}
}
/**
* out of stack
*/
public Node pop(){
if (current == null){
return null;
}else {
Node node = current;//current是我们要出栈的节点
current = current.pre;//每出栈一个节点,current后退一位
return node;
}
}
}
package com.tu.test.stack;
public class MyStackTest {
public static void main(String[] args) {
MyStack myStack = new MyStack();
for (int i = 1;i<=3;i++) {
myStack.push(i);
}
for (int i = 1;i <= 3;i++) {
System.out.println(myStack.pop().data);
}
}
}
输出结果:
3
2
1
相关推荐
2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...
本项目是利用栈来实现一个简单的计算器,不支持括号表达式的计算,其用户界面是通过Java Swing库构建的。下面将详细介绍这个计算器的实现原理以及涉及到的相关知识点。 1. **栈的基本概念**: 栈是一种线性数据...
Java实现顺序栈是一种常见的数据结构操作,主要用于存储和管理元素序列。栈是一种后进先出(LIFO,Last In First Out)的数据结构,通常用于执行回溯、递归等算法。在Java中,我们可以使用数组或ArrayList来实现顺序...
在Java编程语言中,我们可以利用数据结构中的栈(Stack)来实现一个简单的计算器。栈是一种后进先出(LIFO)的数据结构,非常适合处理类似计算表达式这样的问题,因为它们通常涉及运算符的优先级。在这个"JAVA版...
在Java中实现一个简单的直播系统是一项复杂而有趣的任务,它涉及到多个关键的...以上就是Java实现简单直播系统时可能遇到的主要知识点。实际开发中,还需要结合具体的业务需求和团队技术栈,灵活选择合适的技术方案。
下面将详细解释这些概念及其Java实现。 **线性表** 是一种基本的数据结构,它是由n(n>=0)个相同类型元素构成的有限序列。线性表中的元素具有顺序关系,即每个元素都有一个前驱和后继,除了第一个元素没有前驱,...
本篇文章将深入探讨如何在Java中实现一个栈。 首先,Java的`java.util`包中已经为我们提供了一个现成的栈类`java.util.Stack`,它是`Vector`类的一个子类。`Stack`类提供了很多方便的方法,如`push()`用于压栈,`...
实现弹栈,进栈,判断栈是否为空或满等功能 Java入门的简单程序
在Java中,我们可以使用`java.util.Stack`类来创建一个栈,或者简单地用数组模拟栈的操作。 以下是使用栈判断回文串的基本步骤: 1. 创建一个空栈,用于存储字符串的字符。 2. 遍历输入字符串的每个字符,将它们...
Java简易计算器是一个基于Java编程语言实现的计算工具,它不仅支持基本的四则运算,还具备处理三角函数的能力,并且已经实现了运算的优先级规则。这个项目的核心是将用户输入的中缀表达式(常见的数学表达式形式)...
在本文中,我们将深入探讨如何使用Java编程语言来实现一个类似于Windows操作系统中的简易画板程序。这个Java小程序将提供基本的绘图功能,使用户能够通过鼠标或触控设备进行绘画创作。 首先,我们需要理解Java GUI...
这个项目是一个简单的计算器程序,它使用了J#这一微软推出的.NET框架下的Java方言来实现,同时具备基本的四则运算功能。而这些运算的实现方式是通过栈这种数据结构来完成的。 首先,J#是Microsoft推出的一种兼容...
在Java编程语言中,LinkedList集合类是一个非常重要的数据结构,它可以用来实现栈和队列这两种特殊的数据结构。LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入...
Java实现的聊天工具是一款非常适合初学者和进阶者学习的项目,它虽然简单,但却包含了构建基本聊天应用所需的关键技术。这款简易版的聊天工具在设计时,充分考虑了教学和实践的需求,通过全面的注释,使得学习者能够...
在这个实现中,类中定义了一个Object数组`stack`来存储栈元素,一个整型变量`top`作为栈顶指针,以及一个整型变量`maxSize`表示栈的最大容量。类的构造函数接收一个整型参数来初始化栈的最大容量。 具体的方法实现...
在本文中,我们将深入探讨如何使用Java编程语言实现一个简单的编辑器。这个编辑器具备基本功能,如打开、编辑和保存HTML、Java、C++以及纯文本(txt)文件,并且能够进行查找和替换操作。此外,它还特别强调了对Java...
"用Java实现一个简单的JVM"是一个深入理解Java运行机制的好项目,通过这个过程,我们可以学习到JVM的工作原理、内存管理以及指令解析等多个方面的知识。 首先,我们要理解JVM的基本结构。一个简单的JVM通常包含以下...
在这个Java实现中,可能会创建一个模拟环境,使用数组或集合表示囚犯和他们的球,然后用逻辑判断和随机数生成器来模拟球的选择和囚犯的猜测。例如,可能会使用if-else语句或者switch语句来进行条件判断,用for或...
在给定的标题“多边形填充算法java实现”中,我们可以推断这是一个Java编程项目,它实现了对多边形内部进行填充的功能。描述中提到的“扫描线算法”是实现这一功能的常见方法,这种方法基于逐行扫描图像并处理与...
在提供的"栈和队列"压缩包文件中,可能包含了多个Java源代码文件,每个文件都是一个具体的栈或队列应用实例,例如实现括号匹配检查、迷宫路径查找等经典问题。通过分析和运行这些代码,你可以更直观地了解栈和队列在...