欢迎访问宙启技术站
智能推送

Python实现栈数据结构的基本操作

发布时间:2023-12-04 12:32:20

栈是一种常见的数据结构,它采用“先入后出”的原则,类似于我们生活中的堆叠物品,最后放入的物品会最先取出。

在Python中,我们可以使用列表(list)来实现栈的功能。以下是栈数据结构的基本操作及其使用示例:

1. 初始化栈:

通过创建一个空列表来初始化栈。

   stack = []
   

2. 判断栈是否为空:

使用列表的len()函数来判断栈是否为空。如果栈的长度为0,则为空。

   if len(stack) == 0:
       print("栈为空")
   

3. 向栈中添加元素(入栈):

使用列表的append()函数将元素添加到栈的末尾。

   stack.append(1)
   stack.append(2)
   stack.append(3)
   

4. 从栈中取出元素(出栈):

使用列表的pop()函数将栈的最后一个元素取出并返回。

   last_element = stack.pop()
   print(last_element)  # 输出:3
   

5. 查看栈顶元素:

使用列表的索引操作来访问栈的最后一个元素。

   top_element = stack[-1]
   print(top_element)  # 输出:2
   

以下是一个完整的栈的使用示例,实现了一个简单的逆波兰表达式求值的功能:

def evaluate(expression):
    stack = []
    operators = ['+', '-', '*', '/']

    for token in expression.split():
        if token not in operators:
            stack.append(int(token))
        else:
            b = stack.pop()
            a = stack.pop()
            if token == '+':
                stack.append(a + b)
            elif token == '-':
                stack.append(a - b)
            elif token == '*':
                stack.append(a * b)
            elif token == '/':
                stack.append(a / b)
    
    return stack.pop()

expression = "5 2 + 3 *"
result = evaluate(expression)
print(result)  # 输出:21

以上是栈数据结构在Python中的基本操作及其使用示例,希望能帮助到你理解栈的概念和应用。