`
beyondqinghua
  • 浏览: 41713 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

利用LinkedList来实现堆栈

阅读更多
 
import java.util.LinkedList;

/*
 *利用LinkedList来实现堆栈
 *LinkedList容器具有有续性,以及插入删除方便的特征
 *
 */
public class Stack<T>{
	
	//建立一个链表保存数据
	private LinkedList<T> stack;
	
	public Stack(){
		
		stack = new LinkedList<T>();
	}
	
	//入栈操作
	public void push(T obj){
		
		stack.addFirst(obj);
	}
	
	//获取栈顶元素
	public T peek(){
		
		//判断栈是否为空
		if(!isEmpty()){
			
			return stack.getFirst();
			
		}else{
			
			return null;
		}
		
	}
	
	//出栈操作
	public T pop(){
		
		//判断栈是否为空
		if(!isEmpty()){
			
			return stack.removeFirst();
			
		}else{
			
			return null;
		}
		
	}
	
	//判断栈是否为空
	public boolean isEmpty(){
		
		return stack.isEmpty();
	}
	
	//测试堆栈
	public static void main(String[] args){
		
		String[] list = "my name is beyondlife".split(" ");
		
		Stack<String> stack = new Stack<String>();
		
		for(String obj : list){
			
			stack.push(obj);
		}
		
		while(stack.peek() != null){
			
			System.out.print(stack.pop() + " ");
		}
	}
}
 
分享到:
评论

相关推荐

    使用LinkedList模拟堆栈

    通过这种方式,我们可以利用LinkedList的特性高效地实现堆栈和队列的操作。在实际应用中,如需要处理大量数据时,这种方式能够提供较好的性能。文件名"QueueStack"可能表示这个项目或代码示例同时包含了队列和堆栈的...

    用 Java 实现堆栈

    Java作为一种广泛使用的编程语言,提供了多种方式来实现堆栈,包括使用数组、链表以及内置的java.util.Stack类。下面我们将详细讨论如何在Java中实现堆栈,并探讨其相关知识。 首先,我们可以通过自定义一个类来...

    数据结构与算法——堆栈实现括号匹配

    在这个实验中,我们将通过Java实现堆栈来解决括号匹配的问题。 首先,我们需要理解什么是括号匹配。在编程中,我们经常遇到诸如圆括号 `()`、方括号 `[]` 和大括号 `{}` 这样的配对符号。正确地匹配这些括号对于...

    基于 Java 实现的队列和堆栈

    - **实现方式**:常见的队列实现有`LinkedList`(链表实现)和`ArrayDeque`(数组双端队列实现)。链表实现允许快速的插入和删除,而数组实现则在空间效率上更优。 - **应用**:队列常用于任务调度、事件处理、多...

    C# 链表 堆栈 队列

    `Chapter8_3`可能进一步讨论了堆栈的实现和应用,如如何利用堆栈进行括号匹配检查或者深度优先搜索。最后,`Chapter8_2`则可能讲解了队列的原理和使用场景,例如如何利用队列实现一个简单的打印任务调度系统。 总的...

    LinkedList-Application-Guide.rar_技术管理_JavaScript_

    - **算法应用**:如使用LinkedList实现各种算法,如快速排序、归并排序等,以及如何在图算法中使用LinkedList。 深入理解LinkedList的高级特性和应用场景对于提升JavaScript编程能力至关重要,特别是对于需要处理...

    JAVA试验程序代码

    Java提供了Stack类来实现堆栈,它基于Vector,提供了push、pop、peek等方法。此外,LinkedList也可作为堆栈使用,利用其addFirst()和removeFirst()方法实现压栈和弹栈。 在"JAVA试验程序代码"中,你可能会涉及到...

    Android 计算器源码之逆波兰算法

    这个算法的主要优点在于它避免了使用堆栈来处理运算符优先级的问题,使得计算过程更为简洁。在Android 4.2.2平台上构建一个计算器应用,我们可以利用逆波兰算法来解析和执行数学表达式。 首先,我们需要理解中缀...

    Stack-in-Data-Structures:基于堆栈的算法!

    2. **基于链表的堆栈实现**:如果预计数据量较大,数组可能会导致空间浪费,此时可以使用链表(LinkedList)实现堆栈。LinkedList提供了addFirst(E e)用于压栈,removeFirst()用于弹栈。 堆栈在解决问题时有多种...

    数据结构链表演示(java swing)

    在Java中,可以使用LinkedList类来实现堆栈,因为它的addFirst()和removeFirst()方法正好对应堆栈的压栈和弹栈操作。 在项目中,Swing的JFrame、JButton、JLabel等组件将用于创建用户界面。例如,JFrame作为主窗口...

    mission1:使用堆栈实现 PostScript 迷你解释器

    这个任务要求我们在Java环境中构建一个小型的PostScript解释器,利用堆栈数据结构来处理计算。 首先,我们需要理解PostScript的基本语法和操作。PostScript语言允许定义图形、文本和颜色,但在这里,我们将重点放在...

    Queue-from-two-stacks-:使用两个堆栈实现队列的有趣练习

    在Java中,可以使用`java.util.Stack`类来创建堆栈,并结合`ArrayList`或`LinkedList`实现队列功能。以下是一个简单的伪代码示例: ```java class QueueFromTwoStacks { Stack&lt;Integer&gt; inputStack; Stack...

    java 和 c# 不同的7个方法 实现 ABCD 全排列

    在C#中,可以利用`Stack`类,而在Java中,可以使用`LinkedList`或自定义栈结构。 3. **迭代法**: 迭代法通常使用一个二维数组或列表来存储当前排列状态。通过循环遍历所有可能的数字,交换当前元素与后续元素,...

    单链表,栈和队列(c的实现)

    在C语言中,我们可以利用单链表来实现栈。栈的主要操作有压栈(push)、弹栈(pop)和查看栈顶元素(top)。这里是一个简单的栈实现: ```c #include "linkedlist.h" Stack createStack() { Stack stack = (Stack...

    Text-Editor:用Java内置的应用程序。 功能很多,但主要功能是文本的撤消和重做,它不是使用java的内置功能构建的,而是借助堆栈和队列等数据结构实现的

    在Java中,可以使用`java.util.Stack`类来实现堆栈,`java.util.Queue`接口(通常配合`java.util.LinkedList`实现)来创建队列。通过这些数据结构,我们可以高效地管理文本编辑器的历史操作。 以下是实现撤销和重做...

    java堆栈类使用实例(java中stack的使用方法)

    总的来说,Java的Stack类提供了一种简单的方式来实现堆栈数据结构,适用于需要快速执行后进先出操作的应用场景。通过了解和熟练使用其核心方法,开发者可以在处理各种问题时灵活地利用堆栈的特点。在实际项目中,...

    数据结构 C C++ JAVA

    C++和Java中,可以使用标准模板库(STL)的stack容器或者自定义类来实现堆栈。 在C、C++和Java中实现数据结构时,上机指导和源程序是非常重要的学习资源。它们通常包含了一系列的示例代码,帮助初学者理解各种数据...

    堆栈队列

    综上所述,堆栈和队列是编程中不可或缺的数据结构,对于Java开发者来说,理解和掌握它们的原理与实现至关重要。在项目开发过程中,灵活运用堆栈和队列可以有效地优化代码,提升程序性能。通过不断实践和学习,开发者...

    Stacks-Queues:堆栈和队列上的数据结构分配

    例如,深度优先搜索(DFS)和回溯问题通常使用堆栈来实现,而广度优先搜索(BFS)则依赖于队列。此外,队列还可以用于实现生产者消费者模型,这是一种多线程同步问题的解决方案。 在“Stacks-Queues-master”这个...

    data-structures-and-algorithms-2

    在Java中,可以使用ArrayDeque或LinkedList来实现堆栈。常见的操作有: - **push()**:将元素添加到堆栈顶部。 - **pop()**:移除并返回堆栈顶部的元素。 - **peek()**:查看但不移除堆栈顶部的元素。 - **...

Global site tag (gtag.js) - Google Analytics