利用“数组”作为存储结构方法实现“堆栈”的基本操作,包括:创建堆栈、入栈、出栈、空栈、满栈、将一组输入的数据逆序输出、对输入的一组“字符串”判断是否“回文”。
时间: 2023-11-05 15:09:49 浏览: 51
下面是利用数组实现堆栈的代码实现,包括创建堆栈、入栈、出栈、空栈、满栈、将一组输入的数据逆序输出的功能:
```python
class Stack:
def __init__(self, size):
self.stack = []
self.size = size
self.top = -1
def isEmpty(self):
return self.top == -1
def isFull(self):
return self.top == self.size - 1
def push(self, value):
if self.isFull():
print("Stack is full.")
else:
self.top += 1
self.stack.append(value)
def pop(self):
if self.isEmpty():
print("Stack is empty.")
return None
else:
self.top -= 1
return self.stack.pop()
def reverse(self):
if self.isEmpty():
print("Stack is empty.")
else:
print("Reversed stack:")
for i in range(self.top, -1, -1):
print(self.stack[i])
# 测试代码
stack = Stack(5)
stack.push(1)
stack.push(2)
stack.push(3)
stack.push(4)
stack.push(5)
stack.push(6) # Stack is full.
print(stack.pop()) # 5
print(stack.pop()) # 4
stack.reverse()
```
对于判断输入的一组“字符串”是否是“回文”,可以利用堆栈的特性来实现。将字符串中的每个字符入栈,然后再依次出栈比较,如果全部相同,则是回文,否则不是回文。
```python
def isPalindrome(string):
stack = Stack(len(string))
for char in string:
stack.push(char)
for char in string:
if char != stack.pop():
return False
return True
# 测试代码
print(isPalindrome("racecar")) # True
print(isPalindrome("hello")) # False
```
其中,`isPalindrome()`函数返回输入字符串是否是回文的布尔值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)