栈(Stack)是一种常见的数据结构,它遵循先进后出(Last-In-First-Out,LIFO)的原则。栈的操作包括入栈(push)和出栈(pop),其中入栈将元素添加到栈的顶部,而出栈则从栈的顶部移除元素。栈还可以提供其他操作,如查看栈顶元素(top)和检查栈是否为空(empty)。
栈的应用非常广泛,例如在编程中,栈可以用于处理函数的调用、表达式求值、括号匹配等场景。在本文中,我们将重点介绍栈的实现和应用。
栈的实现可以使用数组或链表。下面是使用数组实现栈的示例代码:
class Stack:
def __init__(self):
self.stack = []
def is_empty(self):
return len(self.stack) == 0
def push(self, item):
self.stack.append(item)
def pop(self):
if self.is_empty():
raise Exception("Stack is empty")
return self.stack.pop()
def top(self):
if self.is_empty():
raise Exception("Stack is empty")
return self.stack[-1]
在上述代码中,我们使用 Python 编程语言实现了一个栈类。栈的初始状态是空的,使用列表 self.stack
存储栈的元