📅  最后修改于: 2023-12-03 15:37:49.745000             🧑  作者: Mango
堆栈是一种常见的数据结构,它的特点是先进后出(LIFO,Last In First Out),类似于一摞盘子,新的盘子只能放在最上面,要取盘子只能从最上面一个一个地取出来。
堆栈可以用数组或链表来实现,这里以数组为例进行讲解。
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
以上是一个基本的堆栈类实现,具有常见的入栈、出栈、返回栈顶元素、判断是否为空以及返回栈大小等方法。
堆栈在计算机科学中有着广泛的应用,以下是几个例子:
操作系统栈:当执行函数时,函数调用堆栈会将函数参数和本地变量等信息压入栈中,直到函数返回时,才将这些信息弹出栈,以便继续执行调用者。
表达式求值:使用堆栈可以方便地实现计算表达式的值,例如中缀表达式转换为后缀表达式、计算后缀表达式的值等。
浏览器历史记录:当你在浏览器上浏览网页时,每一次访问都可以看作一个入栈操作,而按“后退”按钮则是出栈操作。
堆栈是一种常见的数据结构,具有先进后出的特点,可以用数组或链表来实现。在计算机科学中有着广泛的应用,包括操作系统栈、表达式求值、浏览器历史记录等。程序员需要熟练掌握堆栈的实现和应用,以便更好地编写高效的程序。