栈的顺序储存的结构定义与五个基本操作函数的实现代码
时间: 2024-10-25 08:03:19 浏览: 13
栈是一种线性数据结构,其特点是后进先出(LIFO,Last In First Out)。这意味着最后插入的元素最先弹出。在顺序存储的情况下,通常我们使用数组来实现,因为数组提供了一种连续的内存空间,便于直接访问。
顺序栈的结构定义可以分为两个部分:栈顶指针top表示栈顶的位置,初始化时为-1(表示空栈),栈底为0。栈的容量大小为MaxSize。
以下是基于数组实现的栈结构以及五个性质基本操作函数的伪代码:
```python
class Stack:
def __init__(self, MaxSize):
self.stack = [None] * MaxSize
self.top = -1
# 插入元素到栈顶
def push(self, item):
if self.is_full():
print("Stack is full!")
else:
self.top += 1
self.stack[self.top] = item
# 弹出并返回栈顶元素
def pop(self):
if self.is_empty():
print("Stack is empty!")
else:
return self.stack[self.top]
self.stack[self.top] = None # 或者这里也可以简化为 self.top -= 1
self.top -= 1
# 查看栈顶元素但不删除
def peek(self):
if self.is_empty():
print("Stack is empty!")
else:
return self.stack[self.top]
# 检查栈是否为空
def is_empty(self):
return self.top == -1
# 检查栈是否已满
def is_full(self):
return self.top == len(self.stack) - 1
```
阅读全文