利用栈实现数据的分类,要求当输入为偶数时进栈1,当输入为奇数时进栈2,最后分别从栈1和栈2输出偶数和奇数序列。
时间: 2024-05-02 15:23:15 浏览: 75
数据结构 栈的算法实现
好的,您提出的问题可以通过以下的算法来解决:
1. 创建两个栈stack1和stack2,用于存储输入的数据。
2. 从标准输入读取数据,如果输入数据是偶数,则将其压入stack1栈中;如果是奇数,则将其压入stack2栈中。
3. 从stack1栈中依次弹出所有元素,并将偶数值输出到标准输出。
4. 从stack2栈中依次弹出所有元素,并将奇数值输出到标准输出。
下面是利用栈实现数据的分类的具体实现代码:
```python
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
def classify_numbers():
stack1 = Stack()
stack2 = Stack()
num = int(input("请输入数据:"))
while num != -1:
if num % 2 == 0:
stack1.push(num)
else:
stack2.push(num)
num = int(input("请输入数据:"))
print("偶数序列:")
while not stack1.is_empty():
print(stack1.pop())
print("奇数序列:")
while not stack2.is_empty():
print(stack2.pop())
classify_numbers()
```
您可以尝试在控制台中运行此代码,并输入一些偶数和奇数,即可看到根据题目要求分类后的结果。希望我的回答能够帮到您,如果还有其他问题,欢迎继续提问。
阅读全文