堆栈和队列方法

时间:2017-07-22 04:02:49

标签: stack queue

这是一本名为"专业的Javascript for Web Developers"的书的摘录。

它说:

"有关ECMAScript数组的一个有趣的事情是,它们提供了一种方法,使数组的行为与其他数据结构相似。数组对象可以像堆栈一样运行,它是一组数据结构中的一个,用于限制项目的插入和删除。堆栈被称为后进先出( LIFO)结构,意味着最近添加的项目是第一个删除的项目。

我在这里很困惑。堆栈是否是插入或删除或项目的受限方法?它说"一组限制项目插入和删除的数据结构。" - >那"限制"。然后它恰恰相反:"堆栈被称为后进先出(LIFO)结构,这意味着最近添加的项目是第一个被删除的项目。"

然后,它与队列方法相同:

就像堆栈限制LIFO数据结构中的访问一样,队列限制了先进先出(FIFO)数据结构中的访问。队列将项目添加到列表的末尾,并从列表的前面检索项目

同样,它说它限制了访问,然后它说是"添加和检索"项..

我疯了,或者这绝对是矛盾的?

1 个答案:

答案 0 :(得分:0)

堆栈是后进先出(LIFO)结构,而队列是先进先出(FIFO)结构。它们都按照插入和移除物品的顺序受到限制。这意味着对于堆栈,您只能删除最后推送的项目;对于队列,您只能按推送顺序删除项目。如果在堆叠中插入1,2,3,则只能以相反的顺序移除它们 - 3,2,1。将其视为堆叠板彼此叠加。对于队列,接下来,如果您插入1,2,3,则只能按顺序1,2,3删除它们。您可以将队列视为办公室,公共汽车站和其他地方的等待“队列”,人们进入并以相同的顺序离开队列。