加入收藏 | 设为首页 | 会员中心 | 我要投稿 青岛站长网 (https://www.0532zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

在JavaScript中实现队列数据结构

发布时间:2021-04-20 17:11:25 所属栏目:动态 来源:互联网
导读:进入机场并想要办理登机手续的旅客将排队进入队列,而刚刚在服务台办理了登机手续的旅客则可以离开队列。 这是队列的真实示例队列数据结构以相同的方式工作。 队列是一种先入先出(FIFO)数据结构的类型。入队(输入)的第一项是要出队(输出)的第一项。 从

进入机场并想要办理登机手续的旅客将排队进入队列,而刚刚在服务台办理了登机手续的旅客则可以离开队列。

这是队列的真实示例—队列数据结构以相同的方式工作。

队列是一种“先入先出”(FIFO)数据结构的类型。入队(输入)的第一项是要出队(输出)的第一项。

从结构上说,一个队列有2个指针。队列中最早的排队项目位于队列的顶部,而最新队列的项目位于队列的末尾。

2.队列中的操作

队列主要支持两种操作:入队列(enqueue)和出队列(dequeue)。此外,您可能会发现使用peek和length操作非常有用。

2.1 入队操作

入队操作在队列尾部插入一个项目。队列操作时间复杂度

关于所有的队列操作--enqueue、dequeue、peek和length——重要的是,所有这些操作必须在恒定的时间内 O(1) 执行。

恒定的时间 O(1) 意味着无论队列的大小(它可以有10个或100万个项目):enqueue、dequeue、peek和length操作必须在相对相同的时间内执行。

3.在JavaScript中实现队列

让我们看一下队列数据结构的可能实现,同时维持所有操作必须在恒定时间 O(1) 中执行的要求。the demo.

const queue = new Queue() 是创建队列实例的方式。

调用 queue.enqueue(7) 方法会将项目7排队到队列中。

queue.dequeue() 从队列中去队列一个头部的项目,而 queue.peek() 只是Peek头部的项目。

最后,queue.length 显示队列中还有多少项目。

队列方法的复杂性

Queue类的 queue()、dequeue()、peek() 和 length() 方法仅使用:

属性访问器(例如 this.items[this.headIndex] ),

或执行算术操作(例如 this.headIndex++ )

因此,这些方法的时间复杂度是恒定时间 O(1)。

总结

队列数据结构是“先入先出”(FIFO)的一种:最早入队的项是

(编辑:青岛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!