当前位置:实例文章 » 其他实例» [文章]12 - 堆栈 - 数组实现堆栈

12 - 堆栈 - 数组实现堆栈

发布人:shili8 发布时间:2025-01-16 21:30 阅读次数:0

**堆栈数据结构**

堆栈是一种线性数据结构,遵循后进先出的原则。它类似于一叠盘子,每次添加或删除元素都在栈顶。

### 堆栈的基本操作1. **push**: 将元素添加到栈顶。
2. **pop**: 移除栈顶元素。
3. **peek**: 查看栈顶元素,但不移除。
4. **isEmpty**: 检查栈是否为空。

### 数组实现堆栈我们可以使用数组来模拟堆栈的行为。下面是基于数组的堆栈实现:

class ArrayStack:
 def __init__(self, max_size):
 """
 初始化堆栈,指定最大容量。
 :param max_size: 堆栈的最大容量。
 """
 self.max_size = max_size self.top = -1 # 栈顶指针 self.array = [None] * max_size # 数组实现堆栈 def push(self, element):
 """
 将元素添加到堆栈顶部。
 :param element: 要添加的元素。
 """
 if self.top == self.max_size -1:
 raise Exception("堆栈已满")
 self.top +=1 self.array[self.top] = element def pop(self):
 """
 移除堆栈顶部元素,并返回其值。
 :return: 堆栈顶部元素的值。
 """
 if self.isEmpty():
 raise Exception("堆栈为空")
 value = self.array[self.top]
 self.array[self.top] = None self.top -=1 return value def peek(self):
 """
 查看堆栈顶部元素,但不移除。
 :return: 堆栈顶部元素的值。
 """
 if self.isEmpty():
 raise Exception("堆栈为空")
 return self.array[self.top]

 def isEmpty(self):
 """
 检查堆栈是否为空。
 :return: True表示堆栈为空,False表示堆栈非空。
 """
 return self.top == -1


### 堆栈的使用示例
# 创建一个最大容量为5 的堆栈stack = ArrayStack(5)

# 将元素添加到堆栈中stack.push(10)
stack.push(20)
stack.push(30)

# 查看堆栈顶部元素print(stack.peek()) # 输出:30# 移除堆栈顶部元素print(stack.pop()) # 输出:30# 检查堆栈是否为空print(stack.isEmpty()) # 输出: False# 将元素添加到堆栈中stack.push(40)

# 检查堆栈是否已满try:
 stack.push(50)
except Exception as e:
 print(e) # 输出: 堆栈已满


### 总结本文介绍了堆栈数据结构的基本概念和操作,展示了如何使用数组实现堆栈。通过阅读本文,你应该能够理解堆栈的基本原理,并且能够使用数组来模拟堆栈的行为。

相关标签:
其他信息

其他资源

Top