编写程序实现顺序栈的初始化,判断栈空否,入栈,出栈
时间: 2024-05-02 21:20:57 浏览: 75
顺序栈的初始化、进栈、出栈、判空、进制转换
下面是Python语言的具体实现:
```python
class Stack:
def __init__(self, capacity):
self.capacity = capacity
self.top = -1
self.data = [None] * capacity
def is_empty(self):
return self.top == -1
def is_full(self):
return self.top == self.capacity - 1
def push(self, value):
if self.is_full():
print("Stack Overflow")
else:
self.top += 1
self.data[self.top] = value
def pop(self):
if self.is_empty():
print("Stack Underflow")
return None
else:
value = self.data[self.top]
self.top -= 1
return value
```
其中,`__init__`方法用于初始化栈。`capacity`参数表示栈的容量。`top`表示栈顶指针,初始值为-1。`data`是一个列表,用于存储栈中的元素。
`is_empty`方法用于判断栈是否为空,如果栈顶指针等于-1,则为空。
`is_full`方法用于判断栈是否已满,如果栈顶指针等于栈的容量减1,则已满。
`push`方法用于入栈,如果栈已满,则打印“Stack Overflow”;否则,栈顶指针加1,将元素存入`data`列表中。
`pop`方法用于出栈,如果栈为空,则打印“Stack Underflow”,并返回None;否则,取出栈顶元素,栈顶指针减1,返回取出的元素。
阅读全文