当前 Stack 的大小是多少?

What is the current size of Stack?

假设一个初始为空的栈S总共执行了25次入栈操作, 12 个 top 操作,10 个 pop 操作,其中 3 个返回 null 表示 清空堆栈。 S的当前大小是多少?

我认为 S.size =7 因为 10 个 pop 操作中有 3 个返回 null 以指示一个 空堆栈但不确定它是否正确

谁能给出正确的答案和解释?

  • 您总共弹出了 10-3 = 7 个元素,因为其中有 3 个弹出 没有改变栈的状态(和大小),所以只有 7 个 pops 改变了。
  • 您总共推送了 25 个元素。
  • 栈顶操作不会改变栈的状态(和大小),并且 可以忽略。

最后堆栈的总大小为25-7 = 18

请注意,操作的顺序无关紧要,只有 "succesfull" 的数量 pop()push() 的数量。

25 次推送 = 25 次索引

10 次 = 25 - 10 = 15

3 次爆破没有发生 = 15 + 3 = 18

tops无所谓,应该是18

是push和pop次数的差