Skip to content

队列(Queue) #3

@chris-paul

Description

@chris-paul

队列(Queue)

队列是一个先进先出的线性数据结构

普通队列

先进先出,队列可以使用数组实现,并且JS的数组本身就支持队列的数据机构。但是使用数组实现队列有以下缺点。

  • 浪费空间,因为JS不管快数组还是慢数组,如果空间不足,就会申请一段内存空间,但是申请的这段内存空间不可能全部使用,所以就存在着浪费,同时队列元素离开队列很多内存空间可能继续空着无法利用

  • 队列存在溢出,因为数组的空间有限,如果一直添加数据,就存在溢出的风险,JS中只不过V8内部帮我们做了内存的扩容和减容。

双端队列

所谓的双端队列就是,队列既可以从前端添加和删除元素, 也可以从后端添加和删除,JS的数组本身就是一个双端队列

循环队列

循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”

使用循环队列可以节约内存空间

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions