📅  最后修改于: 2023-12-03 15:42:11.371000             🧑  作者: Mango
这是一道关于计算机科学的问题,以下是题目描述和解答方法。
有一个某种数据结构 S
,支持两个操作:
push(x)
:将整数 x
存储在 S
中。pop()
:从 S
中删除并返回最后一个插入的元素。给定一个初始为空的 S
,现在执行了以下若干个操作,使用某个元素 x
则表示插入了 x
:
push(5)
push(3)
push(8)
pop()
push(2)
pop()
pop()
push(9)
push(1)
pop()
push(7)
pop()
那么,在以上操作之后,S
中留下了哪些元素?
请将留下的元素按插入的顺序依次输出。
考虑观察执行过程中发生了什么。
一开始 S
为空,接着插入了数字 5,然后是 3,接着是 8。此时 S
中有三个元素,从最后一个插入的顺序分别为 8, 3, 5。
接下来执行了一次 pop()
,将最后插入的元素 8 删除,并返回。此时 S
中还剩下 3 和 5。
然后插入了一个 2,接着再执行 pop()
操作,将最后插入的元素 2 删除并返回。此时 S
中还有 3 和 5。
再执行一次 pop()
,将最后插入的元素 5 删除并返回。此时 S
中只剩下 3。
然后插入 9,再插入 1,然后执行 pop()
操作,将最后插入的元素 1 删除并返回。此时 S
中还剩下 3 和 9。
最后一步是插入 7,接着执行 pop()
,将最后插入的元素 7 删除并返回。此时 S
中只剩下 3 和 9。
由此可见,经过以上操作之后,S
中留下的元素按插入的顺序依次为 3, 9。
下面是相应操作的代码片段:
s = []
s.append(5)
s.append(3)
s.append(8)
s.pop()
s.append(2)
s.pop()
s.pop()
s.append(9)
s.append(1)
s.pop()
s.append(7)
s.pop()
print(s) # 输出 [3, 9]
注意,在 Python 中使用列表即可实现此数据结构。