栈我们可以理解为一个箱子,先放进去的东西在最下面,所以是一个先进后出的原则。下面我们看看一个简单的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语言来实现一个基本的栈类,需要定义一个具有节点属性的私有内部类Node,以及栈的基本操作方法。这些方法通常包括: 1. push(T item):将元素添加到栈顶。 2. pop():移除栈顶元素并返回它。 3. peek():...
在本文中,我们将深入探讨如何使用Java编程语言来实现一个类似于Windows操作系统中的简易画板程序。这个Java小程序将提供基本的绘图功能,使用户能够通过鼠标或触控设备进行绘画创作。 首先,我们需要理解Java GUI...
这个项目是一个简单的计算器程序,它使用了J#这一微软推出的.NET框架下的Java方言来实现,同时具备基本的四则运算功能。而这些运算的实现方式是通过栈这种数据结构来完成的。 首先,J#是Microsoft推出的一种兼容...
在Java编程语言中,LinkedList集合类是一个非常重要的数据结构,它可以用来实现栈和队列这两种特殊的数据结构。LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入...
Java实现的聊天工具是一款非常适合初学者和进阶者学习的项目,它虽然简单,但却包含了构建基本聊天应用所需的关键技术。这款简易版的聊天工具在设计时,充分考虑了教学和实践的需求,通过全面的注释,使得学习者能够...
在这个实现中,类中定义了一个Object数组`stack`来存储栈元素,一个整型变量`top`作为栈顶指针,以及一个整型变量`maxSize`表示栈的最大容量。类的构造函数接收一个整型参数来初始化栈的最大容量。 具体的方法实现...
在Java集合框架中,虽然已经提供了诸如Stack类和Deque接口等现成的栈实现,但理解如何从头实现一个栈对于深入学习数据结构和算法是非常有价值的。它不仅可以帮助开发者更好地理解这些集合类的工作原理,还能在实际...
在本文中,我们将深入探讨如何使用Java编程语言实现一个简单的编辑器。这个编辑器具备基本功能,如打开、编辑和保存HTML、Java、C++以及纯文本(txt)文件,并且能够进行查找和替换操作。此外,它还特别强调了对Java...
"用Java实现一个简单的JVM"是一个深入理解Java运行机制的好项目,通过这个过程,我们可以学习到JVM的工作原理、内存管理以及指令解析等多个方面的知识。 首先,我们要理解JVM的基本结构。一个简单的JVM通常包含以下...