栈的应用,创建一个顺序字符类型的栈,栈的长度是20,依次实现ABCD四个字符的入队,读栈顶元素,然后依次出栈一个元素,输出出栈的元素值,并读栈顶元素
时间: 2024-12-22 22:26:48 浏览: 20
栈是一种线性的数据结构,它遵循“后进先出”(Last In First Out, LIFO)的原则,常用于临时存储、函数调用堆栈、表达式求值等场景。在这里,我们创建一个简单的顺序栈(基于数组实现),长度限制为20,步骤如下:
首先,我们需要定义一个`Stack`类,包含一个字符数组`data`作为存储区,以及一个整数`top`记录栈顶位置:
```python
class Stack:
def __init__(self, capacity=20):
self.data = [''] * capacity
self.top = -1
# 入队操作(入栈)
def push(self, char):
if self.is_full():
print("Stack is full, cannot push.")
return
self.top += 1
self.data[self.top] = char
# 出队操作(出栈)
def pop(self):
if self.is_empty():
print("Stack is empty, cannot pop.")
return None
value = self.data[self.top]
self.data[self.top] = ''
self.top -= 1
return value
# 检查栈是否已满
def is_full(self):
return self.top == len(self.data) - 1
# 检查栈是否为空
def is_empty(self):
return self.top == -1
```
现在我们可以按照这个栈的API进行操作:
```python
# 创建栈实例
stack = Stack()
# 入队操作
stack.push('A')
stack.push('B')
stack.push('C')
stack.push('D')
# 读取并打印栈顶元素
print("Top element:", stack.data[stack.top])
# 出队并打印元素
while not stack.is_empty():
top_value = stack.pop()
print("Popped element:", top_value)
```
当你运行这段代码时,你会看到结果类似于:
```
Top element: D
Popped element: D
Popped element: C
Popped element: B
Popped element: A
```
阅读全文