`

Java中栈(stack)和队列(queue)

    博客分类:
  • Java
阅读更多
1. Java中栈(stack)和队列(queue)

栈:后进先出(Last In First Out(LIFO)),由List接口实现

队列:先进先出(First In First Out(FIFO)),由Queue接口实现

栈与队列的相同点:
1. 都是线性结构。
2. 插入操作都是限定在表尾进行。
3. 都可以通过顺序结构和链式结构实现。
4. 插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。
5. 多链栈和多链队列的管理模式可以相同。

栈与队列的不同点:
1. 删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
2. 应用场景不同;
   常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;
   常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。
3. 顺序栈能够实现多栈空间共享,而顺序队列不能。

队列实现:
import java.util.LinkedList;
public class MyQueue{
    private LinkedList list = new LinkedList();
    public void put(Object o){
        list.addLast(o);
    }
    public Object get(){
        return list.removeFirst();
    }
    public boolean isEmpty(){
        return list.isEmpty();
    }
    public static void main(String[] args){
        MyQueue myQueue = new MyQueue();
        myQueue.put("one");
        myQueue.put("two");
        myQueue.put("three");
        System.out.println(myQueue.get());
        System.out.println(myQueue.get());
        System.out.println(myQueue.get());
        System.out.println(myQueue.isEmpty());
    }
}
运行代码:
one
two
three
true
分享到:
评论

相关推荐

    java 栈和队列的小例子

    在Java编程语言中,栈(Stack)和队列(Queue)是两种基本的数据结构,它们在处理数据存储和操作方面有着广泛的应用。本教程将通过一些小例子来深入理解这两种数据结构及其在Java中的实现。 栈是一种后进先出(LIFO...

    Java模拟栈和队列数据结构的基本示例讲解共4页.pdf

    本篇文档《Java模拟栈和队列数据结构的基本示例讲解共4页.pdf》将深入浅出地介绍如何在Java中实现栈和队列,以帮助开发者更好地理解和应用这些概念。 首先,让我们来了解栈和队列的基本特性: 1. **栈(Stack)**...

    栈和队列的基本操作实现及其应用实验报告

    ### 栈和队列的基本操作实现及其应用实验报告 #### 实验目的 1. **熟练掌握栈和队列的基本操作**:在数组和链表两种存储结构上实现栈和队列的基本操作。 2. **应用栈和队列解决实际问题**:通过具体的编程练习,...

    华科java实验-用泛型栈实现泛型队列

    试用java.util.Stack泛型栈作为父类,用另一个泛型栈对象作为成员变量,模拟实现一个泛型子类Queue,当存储元素的第1个栈的元素超过dump时,再有元素入队列就倒入第2栈。除提供无参构造函数Queue( )外,其它所有队列...

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

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

    栈和队列的代码

    栈和队列是两种基本的数据结构,它们在计算机科学中有着广泛的应用,特别是在算法和数据处理方面。在编程中,理解和掌握栈和队列的实现是至关重要的。 栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据...

    JAVA利用LinkedList构造栈与队列

    LinkedList不仅可以作为列表使用,还可以被巧妙地利用来构建栈(Stack)和队列(Queue)这两种基本数据结构。在本篇内容中,我们将探讨如何通过LinkedList实现栈和队列,以及它们在实际编程中的应用。 首先,栈是一...

    java 队列 链表 栈

    本篇文章将详细讲解Java中的队列、链表和栈,这些概念是许多初学者和专业人士都需要掌握的基础知识。 首先,我们来谈谈队列。队列是一种先进先出(First In First Out,简称FIFO)的数据结构,类似于现实生活中的...

    数据结构试验2-栈和队列实验报告含源码

    在这个"数据结构试验2-栈和队列实验报告含源码"中,我们将深入探讨两个基本且至关重要的数据结构——栈和队列。 栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构。想象一个堆叠的盘子,最后一个放...

    栈和队列基本操作及练习

    在编程中,许多语言提供了内置的栈和队列数据结构,如Python的`collections.deque`可以作为双端队列,支持栈和队列操作,Java的`java.util.Stack`和`java.util.LinkedList`分别实现了栈和队列。此外,还可以自定义...

    通过2个栈 模拟队列。

    队列和栈是两种基本的数据结构,它们各自有着特定的操作模式。队列遵循“先进先出”(FIFO, First In First Out)原则,而栈则遵循“后进先出”(LIFO, Last In First Out)原则。然而,有时我们可能需要使用一种...

    数据结构 栈和队列的详细代码~

    在给定的压缩包文件中,"第3章 栈和队列"可能包含了关于这两种数据结构的更深入的理论介绍、实例分析以及具体的编程实现,包括但不限于C++、Java、Python等语言。通过学习这些内容,你可以更好地理解和掌握栈和队列...

    Java_Stack_Queue:Java中使用链表的堆栈和队列实现

    在Java编程语言中,堆栈(Stack)和队列(Queue)是两种基本的数据结构,它们在处理数据存储和操作时扮演着重要角色。本文将深入探讨如何使用链表(LinkedList)来实现这两种数据结构。 首先,让我们了解堆栈和队列...

    java零基础自学之栈和队列

    在Java编程语言的学习过程中,掌握数据结构的基础是至关重要的,特别是栈和队列这两种特殊的线性表。本篇文章将从零基础的角度出发,详细介绍栈和队列的概念、存储结构以及在Java中的实现。 3.0 简介 栈和队列是...

    基于 Java 实现的队列和堆栈

    队列和堆栈是两种基础但非常重要的数据结构,它们在Java编程中有着广泛的应用。本篇将详细介绍基于Java实现的队列和堆栈,并探讨它们的工作原理、实现方式以及实际应用。 1. **队列(Queue)** - **定义**:队列是...

    Stack_Queue_Stack_源码.zip

    本资料“Stack_Queue_Stack_源码.zip”可能包含了一些关于栈和队列的实现源代码,可能是用C++、Java或Python等编程语言编写的。下面我们将深入探讨这两种数据结构以及它们的应用。 1. 栈(Stack) 栈是一种后进先出...

    zhanheduilie.rar_栈和队列

    C++标准库中的std::stack和std::queue则分别提供了栈和队列的接口。在Java中,java.util.Stack和java.util.Queue类可以方便地实现这些数据结构。 此外,还有一种特殊类型的队列——双端队列(Deque,Double Ended ...

    分别用栈和队列实现迷宫

    在游戏开发中,栈和队列也是常用的数据结构,如游戏状态的保存和恢复、玩家行动的顺序处理等。 通过理解和熟练运用这些基本数据结构,开发者可以有效地解决各种复杂的问题,提高程序的效率和灵活性。在实际项目中,...

    数据结构 实验4 栈和队列

    在数据结构课程的实验4中,学生可能会学习如何使用编程语言(如C++、Java或Python)来实现栈和队列的基本操作,并通过实际的编程练习来加深理解。可能的实验任务包括: 1. 设计和实现栈和队列的类结构,包括构造...

    java-leetcode面试题解Stack之第232题用栈实现队列-题解.zip

    首先,我们来理解队列(Queue)和栈(Stack)的基本特性。队列是一种先进先出(First In First Out, FIFO)的数据结构,就像银行排队等待服务的顾客一样,最先进入队列的元素会最先出队。而栈则是一种后进先出(Last...

Global site tag (gtag.js) - Google Analytics