`
zy19982004
  • 浏览: 661836 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
F6f66edc-1c1a-3859-b76b-a22e740b7aa7
Hadoop学习
浏览量:251950
社区版块
存档分类
最新评论

容器学习十一:Queue & Stack

 
阅读更多

一.Queue类图

queue

     整个Queue结构如上图,单双端+Blocking与否组成了四个接口。

  1. Queue:队列。
  2. Deque:double ended queue双端队列。
  3. BlockingQueue:阻塞队列。
  4. BlockingDeque:阻塞双端队列。

 

二.Stack类

  1. 栈的实现。
  2. public class Stack<E> extends Vector<E>,直接用Vector实现其 LIFO的思想。

 

三.Queue & Stack

  1. Queue队列,满足FIFO;Stack栈,满足LIFO。
  2. 方法对比
    1. Stack就三个方法:

      返回e
      插入 push(e)
      移除 pop()
      查看
      peek()
    2. Queue就稍微复杂些:每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(操作失败时返回nullfalse ,具体取决于操作)。

      抛出异常 返回特殊值
      插入 add(e) offer(e)
      移除 remove() poll()
      查看 element() peek()

 

四.使用

  1. Queue 实现通常不允许插入 null 元素,尽管某些实现(如 LinkedList )并不禁止插入 null 。即使在允许 null 的实现中,也不应该将 null 插入到 Queue 中,因为 null 也用作 poll 方法的一个特殊返回值,表明队列不包含元素。

  2. Deque也可用作 LIFO(后进先出)堆栈。应优先使用Deque而不是遗留Stack 类。
  3. BlockingQueue在Queue的基础上增加了两个阻塞方法:put和take;但它任然有Queue的其他方法。
0
4
分享到:
评论

相关推荐

    【c++】深入剖析与动手实践:C++中Stack与Queue的艺术.txt

    ### C++中Stack与Queue的艺术 #### 数据结构实现 在深入了解C++中栈(Stack)与队列(Queue)之前,我们首先需要明确这两种数据结构的基本概念及其在C++中的实现方式。 - **栈(Stack)**: 栈是一种后进先出...

    c++stack_和_queue用法

    在C++标准模板库(STL)中,提供了许多高效的容器类,其中包括`stack`和`queue`。这两种容器非常适合处理需要先进后出(FILO, First In Last Out)或先进先出(FIFO, First In First Out)的操作场景。本文将详细介绍`...

    advprogram-2021

    这是UET课程中高级课程实践的描述 INT2215-02:N1,N2 PM307-G2,星期...std :: stack和std :: queue关联容器:std :: map和std :: set作业05容器适配器:std :: stack和std :: queue关联容器:std :: map和std :: set

    2Queue1Stack.rar_Two Queues

    本项目“2Queue1Stack.rar”探讨了一种创新的实现方式,即使用两个队列(queue)来模拟一个栈(stack)的功能。这种方法在某些场景下可能比直接使用栈更具优势,例如当系统资源限制或者需要优化特定操作时。 栈是一...

    map queue stack

    C++标准库提供了`std::queue`容器,而Python中则有内置的`queue`模块。常见的队列操作包括入队(enqueue)、出队(dequeue)和检查队首元素。 再者,`stack`是一个后进先出(LIFO,Last In First Out)的数据结构,...

    C++ STL容器stack和queue详解

    C++ STL(Standard Template Library,标准模板库)提供了两种特殊的线性容器:stack(栈)和queue(队列),它们都是基于顺序容器(如vector或deque)实现的抽象数据类型,用于实现特定的数据操作逻辑。 **1. ...

    C++ STL Adaptor stack、queue和vector的使用.doc

    C++ STL 提供了多种容器类,包括 stack、queue 和vector 等,这些容器类都是基于 Adaptor 模式实现的。下面我们将详细介绍这些容器类的使用方法和常见操作。 Stack Stack 是一种 Last-In-First-Out(LIFO)的容器...

    queue是容器配接器C的一个示例

    queue是容器配接器C的一个示例,容器配接器C将一些基础容器转换成类C的容器。容器配接器queue、stack、priority_queue——与标准模板库的其他处理是截然不同的。他们的方法和定义要调用基础容器类的方法。

    stack类模板源代码

    在C++编程语言中,`stack`是一种标准模板库(STL)容器,它实现了后进先出(LIFO)的数据结构,常被用作堆栈。本文将深入解析`stack`类模板的源代码,帮助你理解和运用这个重要的数据结构。 首先,`stack`并不是一个...

    STL中string,vector,list,queue,stack....等原码

    3. 资源内容:描述资源覆盖的主题和内容,例如容器、迭代器、算法、函数对象、适配器等。 4. 资源适用性: 进阶学习者:适合已经有一定基础,希望深入理解STL的用户 5. 资源形式:在线文档 6.资源语言:英语

    Praktikum5(Stack dan Queue)_C++_

    在这个“Praktikum5(Stack dan Queue)_C++_”的学习资源中,我们将深入探讨两种重要的数据结构:栈(Stack)和队列(Queue),它们是理解和解决问题的基础工具。 栈是一种后进先出(LIFO,Last In First Out)的...

    C++中stack,queue,vector的简单用法1

    在C++编程语言中,`stack`、`queue`和`vector`是三种常见的容器类,它们分别提供了栈、队列和动态数组的功能。以下是关于这三个容器的详细说明: 1. **栈(stack)** 栈是一种后进先出(Last In First Out, LIFO)...

    link_stack_queue.rar_C 链表_C++链表_链表

    对于C++,还可以利用STL(Standard Template Library)中的`std::stack`和`std::queue`容器,它们提供了更为方便的接口和底层优化,简化了程序员的工作。 在实际应用中,链表、栈和队列广泛用于数据处理、算法实现...

    已知Q是一个非空队列,S是一个空栈。仅用队列和栈的ADT函数和少量工作变量,编写一个算法,将队列Q中的所有元素逆置

    `std::queue`和`std::stack`分别为队列和栈的容器适配器,它们提供了对应的数据结构操作。例如,可以定义一个`std::queue`对象Q和一个`std::stack`对象S,然后按照上述算法步骤进行操作。 下面是一个简化的C++代码...

    c++容器使用经验总结.docx

    - **其他标准容器**:`array`, `bitset`, `valarray`, `stack`, `queue`, `priority_queue` 选择容器时应考虑以下因素: - **排序需求**:如果元素的排序重要,可以选择关联容器或排序后的`vector`。 - **性能需求*...

    c# 中的arrlist queue HashtableTest SortedList stack 集合

    本篇文章将深入解析几种常见的集合类型:ArrayList、Queue、Hashtable、SortedList以及Stack,通过具体的代码示例和理论解释,帮助读者理解每种集合的特点与应用场景。 ### ArrayList `ArrayList`是一个动态数组,...

    C++STL源码PJ版

    本资源包含了多个STL容器和算法的源码分析,包括string、vector、deque、list、map、set、bitset、queue和stack等,这些文件名对应了STL中的主要组件。 首先,`string.txt`涉及的是C++中的字符串类,它是处理文本...

    STL 应用例子 包括各容器的使用

    适配器如`std::stack`,`std::queue`,`std::priority_queue`将基本容器转化为特定用途的数据结构。 7. **算法的使用**: `sort_test`可能展示了如何使用`std::sort`对容器进行排序,`randfunc`可能涉及随机数...

    STL(学习打卡记录)较详细

    本文将详细介绍STL中的容器,包括 Vector、Stack、Queue、Priority Queue和Set。 Vector Vector是STL中的一种容器,用于存储元素的集合。Vector可以看作是一种动态数组,能够根据需要自动扩容或缩容。Vector的使用...

Global site tag (gtag.js) - Google Analytics