堆栈和队列之间的基本区别是什么?

堆栈和队列之间的基本区别是什么?

请帮助我,我无法找到差异。

你如何区分堆栈和队列?

我在各种链接中搜索了答案,并找到了这个答案。

在高级编程中,

堆栈被定义为通过在现有元素的“顶部”放置新元素并通过从现有元素顶部移除元素缩短的元素的列表或序列。 它是一个ADT [抽象数据类型],其数学运算为“push”和“pop”。

队列是通过将新元素放置在现有元素后面并通过删除队列前元素缩短而添加的元素序列。 它是一个ADT [抽象数据类型]。 这些术语在Java,C ++,Python等编程中有更多的理解。

我可以有一个更详细的答案吗? 请帮帮我。


堆栈是LIFO(后进先出)数据结构。 相关的维基百科链接包含详细的描述和示例。

队列是一个FIFO(先进先出)数据结构。 相关的维基百科链接包含详细的描述和示例。


想象一堆纸。 第一块放在堆栈底部,所以它是最后一块出来的。 这是LIFO。 添加一张纸被称为“推”,并删除一张纸被称为“弹出”。

想象一下商店的一个队列。 排队的第一个人是第一个脱节的人。 这是FIFO。 排队的人是“排队”的,而排队的人是“排队”的。


您可以将它们视为有序的事物列表(按它们添加到列表的时间排序)。 两者之间的主要区别在于新元素如何进入列表并且旧元素离开列表。

对于一个堆栈,如果我有一个列表a, b, c ,并且我添加了d ,那么它会在最后加上,所以我最终得到了a,b,c,d 。 如果我想弹出列表中的一个元素,则删除我添加的最后一个元素,即d 。 流行后,我的列表现在a,b,c

对于队列,我以相同的方式添加新元素。 a,b,c在添加d之后变成a,b,c,d d 。 但是,现在当我弹出时,我必须从列表的前面取一个元素,所以它变成了b,c,d

这很简单!

链接地址: http://www.djcxy.com/p/14015.html

上一篇: what is the basic difference between stack and queue?

下一篇: What is the purpose of a stack? Why do we need it?