这篇文章将为大家详细讲解有关如何在JavaScript中实现队列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。队列是一种“先入先出”(FIFO)数据结构的类型。第一个入队项目(输入)是第一个出队(输出)。队列有2个指针:头和尾。队列中的最早排队的项目是在头部,而最新排队的项目在队列尾部。队列就像我们在地铁排队,靠近车门处的乘客位于队伍的头部,刚进入队伍的乘客位于队伍的尾部。从更高的角度来看,队列是一种数据结构,可以让我们按照入库的顺序依次处理数据的每一项。
队列支持2个主要操作:入队和出队。此外,您可能会发现执行队列的 peek 和 length 操作很有用。
入队操作
入队操作是在队列尾部插入一个项目,插入的项目成为队列的尾部。上图中的入队操作将项目 8 插入到尾部,8成为队列的尾部。
出队操作
出队操作是在队列的开头提取项目,队列中的下一个项目成为头部项目。在上图中,出队操作返回并 7 从队列中删除该项目,出队后,项目2成为新的头部项目。
检视操作
检视操作读取队列的开头,而不会更改队列。项目7是上图中的队列的开头,检视操作仅返回标头(项目)7,而无需修改队列。
队列长度
长度操作计算队列包含多少个项目。图中的队列中有4项:4,6,2,和7,结果,队列长度为4。
队列操作时间复杂度
对于所有队列操作(入队,出队,检视和长度)重要的是,所有这些操作必须在固定时间内执行O(1)。恒定的时间O(1)意味着无论队列大小如何(它可以有10或100万个项目):入队,出队,窥视和长度操作都必须同时执行。让我们看一下队列数据结构的可能实现,同时保持所有操作必须在恒定时间内执行的要求O(1)。const queue = new Queue()是如何创建队列的实例。调用queue.enqueue(7)方法使该项目7进入队列。queue.免费云主机域名dequeue()从队列中取出一个头项,而queue.peek()只是从头检视。最后,queue.length显示队列中还有多少项目。关于实现:在Queue类内部,普通对象this.items通过数字索引保留队列中的项目。头项的索引由跟踪this.headIndex,尾项由跟踪this.tailIndex。队列方法的复杂性类 Queue 的方法 queue(),dequeue(),peek()和length() 仅使用了:因此,这些方法的时间复杂度是恒定时间O(1)。队列数据结构是“先入先出”(FIFO)的一种:最早入队的项是最早出队的项。队列有2个主要操作:入队和出队。另外,队列可以具有辅助操作,例如检视和长度。所有队列操作必须在恒定时间内执行O(1)。关于“如何在JavaScript中实现队列”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
这篇文章主要介绍了SpringMVC使用实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringMVC使用实例分析文章都会有所收获,下面我们一起来看看吧。Spring 为展现层提供的基于 MVC 设计理念的优秀的Web …
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。