Data structures 堆栈数据结构中的第一个和最后一个元素是什么?

Data structures 堆栈数据结构中的第一个和最后一个元素是什么?,data-structures,stack,element,Data Structures,Stack,Element,我研究过堆栈作为数据结构,我知道它们是根据后进先出规则工作的。我遇到了一个问题,要求我检索堆栈的第一个元素和最后一个元素。由于我更愿意让更有经验的用户对我的知识进行双重检查,我很想知道堆栈中的哪些元素被认为是第一个和最后一个 作为一个例子,让我们按顺序1,2,3,4,5,6推入堆栈。书堆的前两个元素是什么,后两个元素是什么?把书堆从上到下想象成现实生活中的一堆书是很有帮助的。如果将book 1推到堆栈上,然后是books 2-6,则堆栈看起来如下所示: 6 5 4 3 2 1 所以1和2是你的

我研究过堆栈作为数据结构,我知道它们是根据后进先出规则工作的。我遇到了一个问题,要求我检索堆栈的第一个元素和最后一个元素。由于我更愿意让更有经验的用户对我的知识进行双重检查,我很想知道堆栈中的哪些元素被认为是第一个和最后一个


作为一个例子,让我们按顺序1,2,3,4,5,6推入堆栈。书堆的前两个元素是什么,后两个元素是什么?

把书堆从上到下想象成现实生活中的一堆书是很有帮助的。如果将book 1推到堆栈上,然后是books 2-6,则堆栈看起来如下所示:

6
5
4
3
2
1

所以1和2是你的前两个元素(书),6和5是你的最后和倒数第二个元素。因为第6本书是最后一本,所以它是第一本离开书堆的书(用编程术语来说是pop),否则你的书堆就会掉下来

把一堆书从上到下想象成现实生活中的一堆书是很有帮助的。如果将book 1推到堆栈上,然后是books 2-6,则堆栈看起来如下所示:

6
5
4
3
2
1

所以1和2是你的前两个元素(书),6和5是你的最后和倒数第二个元素。因为第6本书是最后一本,所以它是第一本离开书堆的书(用编程术语来说是pop),否则你的书堆就会掉下来

在这个问题上,人们可能会有不同的看法。最好的办法是了解手头问题的要求。例如,如果您正在在线评委上解决stack的问题,那么您可以从问题陈述/示例中获得澄清,或者如果您正在专业工作中解决问题,那么您可以从需求分析中获得澄清。最后,如果你能解决你应该解决的问题,你把顶部元素称为第一个或者把底部元素称为第一个并不重要。

在这个问题上,人们可能会有不同的意见。最好的办法是了解手头问题的要求。例如,如果您正在在线评委上解决stack的问题,那么您可以从问题陈述/示例中获得澄清,或者如果您正在专业工作中解决问题,那么您可以从需求分析中获得澄清。最后,如果您能够解决您应该解决的问题,那么将顶部元素称为第一个或将底部元素称为第一个并不重要。

这是一种解释。我也知道有人会说6是堆栈上的第一项。“first”是指“要放在堆栈上的第一项”,还是指“将从堆栈中弹出的第一项?”根据我的经验,程序员的答案在这两者之间相当平均。我感谢您的回答!如果你考虑后进先出(LIFO)的扩展(对于队列,FIFO),我的描述与首字母缩略词一致。这是一种解释。我也知道有人会说6是堆栈上的第一项。“first”是指“要放在堆栈上的第一项”,还是指“将从堆栈中弹出的第一项?”根据我的经验,程序员的答案在这两者之间相当平均。我感谢您的回答!如果你采用后进先出(对于队列,FIFO)的扩展,我的描述和首字母缩略词是一致的。你有一个棘手的问题。提出问题的人应该定义“第一”和“最后”,因为它们是模糊的。毕竟,后进先出意味着最后一项是第一项。那么,他们想要先进先出,还是后进后出?说到堆栈,最好使用“顶部”和“底部”这两个术语。这是一个棘手的问题。提出问题的人应该定义“第一”和“最后”,因为它们是模糊的。毕竟,后进先出意味着最后一项是第一项。那么,他们想要先进先出,还是后进后出?当谈到堆栈时,最好使用术语“顶部”和“底部”