Queue 基本介绍 | 学习笔记

简介: 快速学习 Queue 基本介绍

开发者学堂课程【Scala 核心编程 - 进阶Queue 基本介绍学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9035


Queue基本介绍


内容介绍:

一、队列 Queue 基本介绍

二、链表和数组实现队列


一、队列 Queue 基本介绍

1.队列的应用场景

场景一

银行排队的案例

image.png

场景二

在学 Java 时,有学习到当并发时遇到同步时,有多个线程访问时,会进入到一个队列进行等待,以后自己也会去设计缓冲池,有些高级一些的设计,会在队列中加入优先级,比如有很多并发的任务,调度任务,优先级高低需要定义,需要写一段调度代码,如果在优先级相同的情况下,在队列选择一个任务。

如果在排队的过程中,优先级有高低,那么可以先选择优先级高的任务。

2.队列的说明

1)队列是一个有序列表,在底层可以用数或是实现。

2)输入和输出要遵循先入先出的原则(没有带优先级)。即:先入队列的数据,要先取出后存入的要后取出

3) Scala 中,由设计者直接给我们供队列类型使用。

4) Scala 中,有两种队列,

分别是  scala.collection.mutalble.Queue (可变队列)和 scala.collection.immutable.Queue(不可变队列),一般来说,我们在开发中常使用可变集合中的队列。队列不能变化的话意义不大,除非有队列不变这个要求。


二、链表和数组实现队列

1.链表实现队列:

假设有一个链表,有一个一个的节点,每个节点依次相连,一个节点指向后一个节的的尾部,最后一个指向尾节点,设尾节点后面的指向尾  kong 前面有一个头节点为 head。

调用时先找到头节点,头节点指向第二个节点,取出第二个节点,取出后丢出该节点,然后让头节点指向下一个节点,所以第二个节点被当成垃圾被回收,第三个节点也被丢出,头节点依次指向后面的节点遍历,最后 kong 指向新节点。

2.数组实现队列

通过一个小算法,用数组形成一个环形队列

相关文章
|
8月前
|
设计模式 存储 C++
C++初阶(十五)Stack和Queue
C++初阶(十五)Stack和Queue
70 0
|
算法 调度 C++
【C++STL基础入门】queue基础使用
【C++STL基础入门】queue基础使用
105 0
|
3月前
|
数据采集 监控 算法
原子钟的基本介绍
【10月更文挑战第7天】本文介绍原子钟是一种利用原子跃迁频率作为基准的高精度计时设备,广泛应用于通信、导航、科学研究等领域。铯原子钟是最精确的计时设备之一,基于铯133原子的超精细跃迁,频率为9,192,631,770 Hz。其关键部件包括铯束源、微波腔、磁态选择器、检测系统和反馈回路。原子钟在GPS、电信、金融市场等应用中至关重要,软件开发需考虑高精度时间同步、数据处理、硬件接口和性能监控。
300 59
|
8月前
|
存储 算法 C语言
【C++入门到精通】C++入门 —— priority_queue(STL)优先队列
本文介绍了C++的STL组件`std::priority_queue`,它是一个容器适配器,实现优先队列数据结构,通常基于堆实现。文章讨论了优先队列的基本概念、特点和底层堆结构,强调了其自动排序和优先级最高元素的访问。还展示了如何定义、插入、访问和移除元素,以及自定义比较函数。此外,提供了模拟实现`priority_queue`的代码示例,探讨了仿函数的作用,包括默认的`std::less`和自定义比较函数。文章鼓励读者进一步探索C++的优先队列及其应用。
98 3
|
3月前
|
存储 算法 C++
C++入门10——stack与queue的使用
C++入门10——stack与queue的使用
53 0
|
7月前
|
安全 Python
对于Python队列(Queue)的深入阐述
对于Python队列(Queue)的深入阐述
|
存储 安全 Java
【面试题精讲】Queue 与 Deque 的区别
【面试题精讲】Queue 与 Deque 的区别
|
8月前
|
存储 C++ 容器
【STL】priority_queue的底层原理及其实现
【STL】priority_queue的底层原理及其实现
|
算法 C++ 容器
C++初阶之一篇文章教会你queue和priority_queue(理解使用和模拟实现)(下)
优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。 此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。 优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器
|
存储 C++ 容器
C++初阶之一篇文章教会你queue和priority_queue(理解使用和模拟实现)(上)
队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。