`
wuhoujian322
  • 浏览: 64499 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java实现一个简单的栈

阅读更多

栈我们可以理解为一个箱子,先放进去的东西在最下面,所以是一个先进后出的原则。下面我们看看一个简单的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

0
0
分享到:
评论

相关推荐

    java 栈的实现和应用

    2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...

    java模拟顺序栈实现回文串的判断

    在Java中,我们可以使用`java.util.Stack`类来创建一个栈,或者简单地用数组模拟栈的操作。 以下是使用栈判断回文串的基本步骤: 1. 创建一个空栈,用于存储字符串的字符。 2. 遍历输入字符串的每个字符,将它们...

    Java用栈实现的计算器

    本项目是利用栈来实现一个简单的计算器,不支持括号表达式的计算,其用户界面是通过Java Swing库构建的。下面将详细介绍这个计算器的实现原理以及涉及到的相关知识点。 1. **栈的基本概念**: 栈是一种线性数据...

    java实现顺序栈

    Java实现顺序栈是一种常见的数据结构操作,主要用于存储和管理元素序列。栈是一种后进先出(LIFO,Last In First Out)的数据结构,通常用于执行回溯、递归等算法。在Java中,我们可以使用数组或ArrayList来实现顺序...

    JAVA 版计算器,通过栈实现

    在Java编程语言中,我们可以利用数据结构中的栈(Stack)来实现一个简单的计算器。栈是一种后进先出(LIFO)的数据结构,非常适合处理类似计算表达式这样的问题,因为它们通常涉及运算符的优先级。在这个"JAVA版...

    java实现简单直播系统

    在Java中实现一个简单的直播系统是一项复杂而有趣的任务,它涉及到多个关键的...以上就是Java实现简单直播系统时可能遇到的主要知识点。实际开发中,还需要结合具体的业务需求和团队技术栈,灵活选择合适的技术方案。

    线性表,单链表,栈 java实现

    下面将详细解释这些概念及其Java实现。 **线性表** 是一种基本的数据结构,它是由n(n&gt;=0)个相同类型元素构成的有限序列。线性表中的元素具有顺序关系,即每个元素都有一个前驱和后继,除了第一个元素没有前驱,...

    java实现的栈

    本篇文章将深入探讨如何在Java中实现一个栈。 首先,Java的`java.util`包中已经为我们提供了一个现成的栈类`java.util.Stack`,它是`Vector`类的一个子类。`Stack`类提供了很多方便的方法,如`push()`用于压栈,`...

    用Java语言实现栈的功能

    实现弹栈,进栈,判断栈是否为空或满等功能 Java入门的简单程序

    java简易计算器(四则运算、三角函数、实现优先级)

    Java简易计算器是一个基于Java编程语言实现的计算工具,它不仅支持基本的四则运算,还具备处理三角函数的能力,并且已经实现了运算的优先级规则。这个项目的核心是将用户输入的中缀表达式(常见的数学表达式形式)...

    栈的java版演示栈的java版演示栈的java版演示

    创建一个栈非常简单,只需如下代码: ```java Stack&lt;Integer&gt; stack = new Stack(); ``` 2. **基本操作** - **压栈(push)**: 向栈顶添加元素。 ```java stack.push(1); ``` - **弹栈(pop)**: 移除并...

    Java实现画板(Java小程序 模仿Win系统画板)

    在本文中,我们将深入探讨如何使用Java编程语言来实现一个类似于Windows操作系统中的简易画板程序。这个Java小程序将提供基本的绘图功能,使用户能够通过鼠标或触控设备进行绘画创作。 首先,我们需要理解Java GUI...

    j# java计算器 四则运算 栈

    这个项目是一个简单的计算器程序,它使用了J#这一微软推出的.NET框架下的Java方言来实现,同时具备基本的四则运算功能。而这些运算的实现方式是通过栈这种数据结构来完成的。 首先,J#是Microsoft推出的一种兼容...

    java中LinkedList集合类实现栈和队列.doc

    在Java编程语言中,LinkedList集合类是一个非常重要的数据结构,它可以用来实现栈和队列这两种特殊的数据结构。LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入...

    java实现的聊天工具 简易版 非常适合学习用

    Java实现的聊天工具是一款非常适合初学者和进阶者学习的项目,它虽然简单,但却包含了构建基本聊天应用所需的关键技术。这款简易版的聊天工具在设计时,充分考虑了教学和实践的需求,通过全面的注释,使得学习者能够...

    顺序栈通常使用数组来实现,其特点是在栈底预先分配好一块存储空间,栈顶指针指向栈顶元素 以下是一个简单的Java实现:.txt

    在这个实现中,类中定义了一个Object数组`stack`来存储栈元素,一个整型变量`top`作为栈顶指针,以及一个整型变量`maxSize`表示栈的最大容量。类的构造函数接收一个整型参数来初始化栈的最大容量。 具体的方法实现...

    Java实现一个简单的编辑器

    在本文中,我们将深入探讨如何使用Java编程语言实现一个简单的编辑器。这个编辑器具备基本功能,如打开、编辑和保存HTML、Java、C++以及纯文本(txt)文件,并且能够进行查找和替换操作。此外,它还特别强调了对Java...

    用Java实现一个简单的JVM.zip

    "用Java实现一个简单的JVM"是一个深入理解Java运行机制的好项目,通过这个过程,我们可以学习到JVM的工作原理、内存管理以及指令解析等多个方面的知识。 首先,我们要理解JVM的基本结构。一个简单的JVM通常包含以下...

    java 算法实现只是一个简单的测试例子

    在这个Java实现中,可能会创建一个模拟环境,使用数组或集合表示囚犯和他们的球,然后用逻辑判断和随机数生成器来模拟球的选择和囚犯的猜测。例如,可能会使用if-else语句或者switch语句来进行条件判断,用for或...

    多边形填充算法java实现

    在给定的标题“多边形填充算法java实现”中,我们可以推断这是一个Java编程项目,它实现了对多边形内部进行填充的功能。描述中提到的“扫描线算法”是实现这一功能的常见方法,这种方法基于逐行扫描图像并处理与...

Global site tag (gtag.js) - Google Analytics