📅  最后修改于: 2023-12-03 15:26:12.116000             🧑  作者: Mango
堆栈(stack)是一种 LIFO(Last In First Out)数据结构,也就是最后进入的元素最先被取出。像餐厅里的餐盘子一样,后入的餐盘子(元素)会先被拿出。
堆栈只允许在一端进行插入和删除操作,这一端被称为堆栈顶。当插入一个元素时,它会被放在堆栈顶,而当删除一个元素时,它会从堆栈顶被取出并移除。
在数组中实现堆栈非常容易,因为数组的特性和堆栈的特性刚好符合。在数组中,我们只需要将堆栈顶指针 top 初始化为 -1,每次插入元素时将 top 加 1,表示新元素的位置在数组中的下标是 top。弹出元素时,只需要将 top 减 1,表示堆栈顶指针向下移动一位即可。
以下是使用 Python 语言实现的数组堆栈示例代码:
class Stack:
def __init__(self):
self.top = -1
self.array = []
def push(self, value):
self.top += 1
self.array.append(value)
def pop(self):
if self.is_empty():
return None
else:
self.top -= 1
return self.array.pop()
def is_empty(self):
return len(self.array) == 0
数组作为堆栈的数据结构,其优点在于:
但是也有以下缺点:
堆栈是一种基础的数据结构,通过数组的方式实现相当简单,且效率高。我们可以根据实际需求选择使用堆栈数据结构,但需要注意不同情况下的优劣势,并进行合理的资源分配。