当前 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次数的差
假设一个初始为空的栈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次数的差