`
TRAMP_ZZY
  • 浏览: 138842 次
社区版块
存档分类
最新评论

Java 自定义栈结构

    博客分类:
  • Java
阅读更多
public class LinkedStack<T> {
	private static class Node<U> {
		U item;
		Node<U> next;
		Node() {item = null; next = null;}
		Node(U item, Node<U> next) {
			this.item = item;
			this.next = next;
		}
		
		boolean end() {
			return item == null && next == null;
		}
	}
	
	// top 是最顶上的节点
	private Node<T> top = new Node<T>();
	public void push(T item) {
		top = new Node<T>(item, top);
	}
	
	public T pop() {
		T result = top.item;
		if (!top.end()) {
			top = top.next;
		}
		return result;
	}
	
	public static void main(String[] args) {
		LinkedStack<String> lss = new LinkedStack<String>();
		for (String s : "my name is zhang zhao yu".split(" ")) {
			lss.push(s);
		}
		String s;
		while ((s = lss.pop()) != null) {
			System.out.println(s);
		}
	}

}
分享到:
评论

相关推荐

    JAVA动态表单设计,自定义表单,自定义数据

    总的来说,"JAVA动态表单设计,自定义表单,自定义数据"涉及的技术栈包括Java后端开发、前端界面设计、数据库管理和RESTful API设计。通过以上各模块的协同工作,可以构建出一个高效、易用的动态表单系统,满足不同...

    实例183 - 自定义非泛型栈结构

    描述中提到的博客链接可能提供了具体的代码实现和详细解释,但由于这里没有实际的链接内容,我会基于通用知识来解释自定义栈的创建过程。 在许多编程语言中,例如Java或C#,泛型是提供类型安全的一种方式,可以确保...

    Java版数据结构代码,栈,动态数组,队列,链表,二叉树

    在Java中,可以使用java.util.Stack类来实现栈,但此资源提供的代码可能自定义实现了栈结构,通过动态数组实现压栈和弹栈操作,提高了灵活性和效率。 2. **动态数组(Dynamic Array)**:动态数组是一种可变大小的...

    java中的栈(深层了解java虚拟机对对象的内存分布)

    Java中的栈和堆分别承担着不同的角色:栈负责快速、高效的存储和管理基本类型和局部变量,而堆则提供了更加灵活的内存管理策略,适用于各种复杂对象和动态数据结构。理解这两种内存区域的工作机制,对于编写高效、...

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

    4. **自定义栈实现** 虽然`java.util.Stack`提供了栈的功能,但有时我们可能需要更灵活的实现,比如使用数组或链表。这里我们可以使用`ArrayList`或`LinkedList`来自定义栈: - **使用ArrayList实现**: ```java ...

    Java数据结构-栈

    在Java中,你可以通过实现接口`IStack`来创建自定义的栈类。例如,你可以创建一个名为`Stack`的类,它包含一个Object数组`table`作为底层存储,并用一个`top`变量来跟踪栈顶的索引。`Stack`类应提供上述基本操作的...

    java实现数据结构

    下面将详细介绍Java中实现链表、栈、队列、优先级队列以及哈希表这些基本数据结构的方法。 首先,我们来看链表。链表是一种线性数据结构,其中的元素不连续存储,而是通过指针连接。Java中的`LinkedList`类实现了`...

    Java数据结构课件

    栈是一种后进先出(LIFO)的数据结构,Java中的`java.util.Stack`类可以用来实现栈。栈常用于表达式求值、深度优先搜索等场景。队列是一种先进先出(FIFO)的数据结构,`java.util.Queue`接口及其实现类如`...

    java树形结构

    在Java中,实现树形结构通常有两种主要方式:通过继承自Java集合框架的`TreeSet`或`TreeMap`类,或者自定义节点类来构建树。`TreeSet`和`TreeMap`利用红黑树(Red-Black Tree)实现,提供了自动排序的功能。而自定义...

    java-数据结构代码实现

    Java的`Stack`类是基于`Vector`实现的,但你也可以自定义栈结构,比如使用`ArrayList`或`LinkedList`。 3. **队列**:队列是一种先进先出(FIFO)的数据结构,常用于任务调度和消息传递。Java提供了`ArrayDeque`和`...

    java 利用栈将字符串逆序输出

    在Java编程语言中,栈(Stack)是一种非常重要的数据结构,它遵循“后进先出”(LIFO,Last In First Out...这个例子展示了如何通过自定义数据结构(`MyStack`)来实现栈的功能,同时也体现了Java的面向对象编程思想。

    邓俊辉版java 数据结构源码

    Java中,我们可以通过ArrayDeque类或者自定义链表来实现栈。 队列是先进先出(FIFO)的数据结构,Java的LinkedList类可以方便地实现队列功能,或者使用ArrayDeque类的双端队列特性。 树是一种非线性的数据结构,...

    Java软件结构与数据结构源码

    Java软件结构与数据结构源码是学习和理解Java编程中核心概念的重要资源。数据结构是计算机科学的基础,它涉及到如何组织和存储数据以便于高效地访问和修改。在Java中,掌握数据结构对于开发高性能、可扩展的软件至关...

    JAVA常用数据结构和算法

    Java提供了多种内置数据结构,如数组、链表、栈、队列、集合、映射等。以下是对这些主要数据结构的详细介绍: 1. **数组**:是最基本的数据结构,它允许我们存储同类型元素的固定数量。在Java中,数组提供了直接...

    java实现的栈

    然而,如果你需要自定义栈的行为或者优化性能,你可以选择实现`java.util.Deque`接口或者直接继承`java.util.ArrayList`或`java.util.LinkedList`来创建自己的栈。例如,下面是一个基于`ArrayList`的栈实现: ```...

    java版数据结构ppt

    在Java中,这些数据结构和算法可以通过内置类(如ArrayList、LinkedList、TreeSet等)或者自定义实现。了解何时以及如何使用这些类对于编写高效的Java代码至关重要。 最后,学习数据结构不仅仅是理解其工作原理,还...

    用栈计算表达式(Java版)

    在Java中,我们可以创建一个自定义的栈类(如MyStack_1.java和MyStack_2.java中的实现),用于存储运算符。当遇到操作数时,直接将其压入栈;而当遇到运算符时,我们需要根据运算符的优先级与栈顶运算符进行比较。...

    java数据结构(栈)

    在Java中,实现栈的数据结构有多种方式,包括使用ArrayDeque、LinkedList或自定义类。这里我们将重点讨论基于LinkedList实现的栈,因为它提供了高效的插入和删除操作。文件名“LinkedStack”可能就是指一个使用...

    栈《数据结构--Java版》

    - 自定义栈的性能取决于底层数据结构。ArrayList在大部分操作中更快,但在中间插入和删除时性能较差;LinkedList在插入和删除时更快,但访问速度慢。 5. **源码分析**: 对于`java.util.Stack`类,可以查看其源码...

    数据结构教程(java语言描述)-源码和课件-李春葆

    3. **栈**:栈是一种后进先出(LIFO)的数据结构,Java中的Deque接口和ArrayDeque类可以用来实现栈。理解栈的应用场景,如表达式求值、回溯算法等。 4. **队列**:队列是一种先进先出(FIFO)的数据结构,Java中的...

Global site tag (gtag.js) - Google Analytics