利用栈实现数据的分类,要求当输入为偶数时进栈1,当输入为奇数时进栈2,最后分别从栈 1和栈2输出偶数和奇数序列。
时间: 2024-05-01 07:17:33 浏览: 108
好的,让我来回答这个问题。首先我们需要定义两个栈来分别存储偶数和奇数。当输入一个数时,我们可以判断它是奇数还是偶数,然后将其放到对应的栈里。
具体实现过程如下:
1. 定义两个栈stack1和stack2。
2. 初始化一个计数器count为0。
3. 循环输入若干个数,当输入结束时退出循环。在循环中进行如下操作:
a. 读入一个数num,并将count加1。
b. 如果num是偶数,将其压入stack1中。
c. 如果num是奇数,将其压入stack2中。
4. 循环输出stack1中的所有数,直到栈为空。
5. 循环输出stack2中的所有数,直到栈为空。
以下是该算法的Python实现代码:
```python
stack1 = []
stack2 = []
count = 0
while True:
num = input("请输入一个数字(输入Q结束输入):")
if num == 'Q':
break
count += 1
if int(num) % 2 == 0:
stack1.append(num)
else:
stack2.append(num)
print("偶数序列:")
while stack1:
print(stack1.pop(), end=' ')
print()
print("奇数序列:")
while stack2:
print(stack2.pop(), end=' ')
print()
```
请注意,以上算法只是一种解决问题的方法,还存在其他实现方式。
阅读全文