任务描述 本关任务是实现S_Push和S_Pop函数,以实现进栈和出栈等功能。 输入输出说明: 输入格式: 首先输入一个正整数 max ,创建一个最多可存储 max 个元素的栈。 然后输入多个操作: 如果输入 “push” ,则后面跟一个数 x ,表示 x 进栈; 如果输入 “pop” ,表示出栈操作; 如果输入 “end” ,表示输入结束。 输出格式: 输出栈的长度,然后从栈底到栈顶依次输出各元素。 测试集1: 6 push 56 push 15 push 12 push 13 pop end 输出: stack data (from bottom to top): 56 15 12 测试集2: 5 push 1 push 2 push 3 push 4 push 5 push 6 pop end 输出: stack data (from bottom to top): 1 2 3 4
时间: 2024-03-20 09:44:56 浏览: 118
以下是实现 S_Push 和 S_Pop 函数的示例代码:
```python
class Stack:
def __init__(self, max_size):
self.top = -1
self.max_size = max_size
self.stack = [None] * max_size
def S_Push(self, x):
if self.top == self.max_size - 1:
return False
else:
self.top += 1
self.stack[self.top] = x
return True
def S_Pop(self):
if self.top == -1:
return None
else:
x = self.stack[self.top]
self.top -= 1
return x
if __name__ == '__main__':
max_size = int(input())
stack = Stack(max_size)
while True:
operation = input()
if operation == "push":
x = int(input())
stack.S_Push(x)
elif operation == "pop":
stack.S_Pop()
elif operation == "end":
break
print("stack data (from bottom to top):", end=" ")
for i in range(stack.top + 1):
print(stack.stack[i], end=" ")
print()
```
对于测试集1,程序的输出为:
```
stack data (from bottom to top): 56 15 12
```
对于测试集2,程序的输出为:
```
stack data (from bottom to top): 1 2 3 4
```
阅读全文