栈的顺序表示和实现 要求1:初始化顺序栈2:插入元素3:删除顶元素4:取栈顶元素5:遍历顺序
时间: 2024-10-10 10:10:30 浏览: 30
栈是一种特殊的线性表,按照"先进后出"(LIFO,Last In First Out)的原则进行操作。在顺序表示中,我们通常使用数组的方式来实现,因为数组提供了一种连续的内存空间,可以方便地进行元素的存取。
1. **初始化顺序栈**:
创建一个固定大小的数组`stack[]`,并初始化一个变量`top`作为栈顶指针,将其置为-1,表示栈为空。
```python
class Stack:
def __init__(self, capacity):
self.stack = [None] * capacity
self.top = -1
```
2. **插入元素(压栈,push)**:
将元素添加到数组`stack[top + 1]`处,然后更新`top`。
```python
def push(self, item):
if self.top < len(self.stack) - 1:
self.stack[++self.top] = item
else:
print("Stack is full!")
```
3. **删除顶元素(弹栈,pop)**:
如果栈不为空,将`stack[top]`移除并将`top`减1;否则报错。
```python
def pop(self):
if self.is_empty():
print("Stack is empty!")
else:
return self.stack.pop(self.top)
self.top -= 1
```
4. **取栈顶元素(查看,peek)**:
返回顶部元素但不删除,与`pop`类似但不执行移除操作。
```python
def peek(self):
if self.is_empty():
print("Stack is empty!")
else:
return self.stack[self.top]
```
5. **遍历顺序栈(仅显示栈内元素,非递归遍历)**:
需要先判断栈是否为空,然后从栈顶开始打印元素,直到栈为空。
```python
def traverse(self):
while not self.is_empty():
print(self.stack[self.top], end=" ")
self.pop()
```
阅读全文