Forwarded from w h
www.mjsq5.in
美姬社区-免费在线观看,麻豆传媒,福利姬,ASMR福利视频
汇集全网高清,福利姬,ASMR福利视频,免费在线观看-美姬社区
class Stack:
def __init__(self, size=10):
# 初始化一个固定大小的列表作为栈,并设置栈顶指针为-1
self.stack = [None] * size
self.top = -1
def is_empty(self):
# 判断栈是否为空
return self.top == -1
def is_full(self):
# 判断栈是否已满
return self.top == len(self.stack) - 1
def push(self, item):
# 如果栈未满,将元素压入栈,否则打印溢出信息
if self.is_full():
print("Stack Overflow")
else:
self.top += 1
self.stack[self.top] = item
def pop(self):
# 如果栈非空,弹出栈顶元素并返回,否则打印下溢信息
if self.is_empty():
print("Stack Underflow")
else:
item = self.stack[self.top]
self.top -= 1
return item
def peek(self):
# 如果栈非空,返回栈顶元素,否则打印栈为空信息
if not self.is_empty():
return self.stack[self.top]
else:
print("Stack is empty")
def process_numbers():
# 创建一个栈对象
stack = Stack()
while True:
# 循环读取用户输入的整数
try:
num = int(input("Enter a number (-1 to end): "))
# 将非-1的整数压入栈
if num != -1:
stack.push(num)
# 当输入为-1且栈非空时,弹出栈顶元素并打印
elif num == -1 and not stack.is_empty():
print("Popped and printed:", stack.pop())
# 当输入为-1且栈为空时,提示栈为空
else:
print("Stack is empty, nothing to pop.")
except ValueError:
# 捕获无效输入并提示
print("Invalid input. Please enter an integer.")
# 运行处理数字的函数
process_numbers()
def is_paired(expression):
# 创建一个空栈用于存储左括号
stack = []
# 定义括号映射关系
mapping = {")": "(", "}": "{", "]": "["}
# 遍历输入的表达式
for char in expression:
# 如果是左括号,压入栈
if char in mapping.values():
stack.append(char)
# 如果是右括号,检查栈顶的左括号是否与之匹配,不匹配或栈为空则返回False
elif char in mapping.keys():
if not stack or mapping[char] != stack.pop():
return False
# 如果栈为空,说明括号匹配成功
return not stack # 如果栈为空,括号匹配正确
# 获取用户输入的表达式
expression = input("Enter an arithmetic expression: ")
# 检查括号是否正确配对
if is_paired(expression):
print("The parentheses are correctly paired.")
else:
print("The parentheses are not correctly paired.")