定义一个顺序栈,并完成实现以下操作 (1)初始化 (2)入栈 (3)出栈 (4)判断栈满 (5)判断栈空 (6)清空栈 (7)显示栈中各元素 (8)十进制到八进制的转换
时间: 2023-10-25 17:09:11 浏览: 43
好的,以下是顺序栈的实现代码:
```python
class SeqStack:
def __init__(self, maxsize=10):
self.maxsize = maxsize
self.stack = [None] * maxsize
self.top = -1
def is_full(self):
return self.top == self.maxsize-1
def is_empty(self):
return self.top == -1
def push(self, value):
if self.is_full():
print("Stack is full!")
return
self.top += 1
self.stack[self.top] = value
def pop(self):
if self.is_empty():
print("Stack is empty!")
return None
value = self.stack[self.top]
self.top -= 1
return value
def clear(self):
self.top = -1
def display(self):
for i in range(self.top, -1, -1):
print(self.stack[i], end=' ')
print()
def decimal_to_octal(self, decimal):
if decimal == 0:
return 0
octal = ''
while decimal != 0:
remainder = decimal % 8
octal = str(remainder) + octal
decimal //= 8
return octal
```
使用方法如下:
```python
stack = SeqStack()
stack.push(1)
stack.push(2)
stack.push(3)
stack.display() # 3 2 1
stack.pop()
stack.pop()
stack.display() # 1
print(stack.decimal_to_octal(10)) # 12
```
以上代码实现了顺序栈,并且包含了初始化、入栈、出栈、判断栈满、判断栈空、清空栈、显示栈中各元素、十进制到八进制的转换等操作。