【问题标题】:What is the initialising value for top in stacks堆栈顶部的初始化值是多少
【发布时间】:2019-04-19 00:05:13
【问题描述】:

当我练习堆栈时,我对初始化顶部有疑问。 有人可以建议什么是好的做法,要么采用 top = 0 要么 top = -1。

我是 Java 新手,现在正在学习它。 希望有人向我解释这一点。 提前致谢。

【问题讨论】:

  • 0 是一个很好的起始值。因为您希望初始值是第一个值。为什么要从-1 开始?
  • 我认为任何一个都可以。如果你从 top = 0 开始,那么 top 总是等于堆栈上的元素数。
  • 我不明白为什么 to 被否决。难道他的英语没有达到一流的质量吗?还是说他似乎没有完全掌握 Stack 的概念?我认为两者都是可以解决的,因为他的英语已经相当不错了,而且一旦点击就可以轻松堆叠。 @K.Sindhu:查看此 tutorial。 jenkov 对“顶部”的含义是堆栈的最高位置。一旦您将一个元素添加到堆栈中,它就会成为顶部位置。您不能在 java 中使用 top 变量初始化堆栈。玩得开心!
  • 回复。 downvote:我的猜测是没有代码,问题是基于意见的,OP 可能已经自己做了一些研究。 @user3469861

标签: java data-structures


【解决方案1】:

这取决于您使用的堆栈实现(数组,链接列表)。使用可以使用 top=-1 或 top=0 来表示空堆栈,没有这样的硬性规则。如果您使用的是基于数组的堆栈(例如 A[n]),那么最好使用 top=-1 因为数组索引从 0 到 n-1 开始,用于 java 中大小为 n 的数组。 第一次推送操作,top=-1+1=0,参考元素A[0]

【讨论】:

  • 使用编辑器功能将代码标记为代码,将文本标记为文本。这使您的帖子更具可读性;)
猜你喜欢
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
相关资源
最近更新 更多