舞伴问题数据结构
时间: 2023-06-28 13:11:42 浏览: 201
舞伴问题可以使用一个队列来解决。具体做法是将男生和女生分别放到两个队列中,然后依次取出男生队列和女生队列的队首元素进行配对,如果性别不匹配则将其放回原队列末尾,继续取下一个队首元素进行匹配。如果配对成功,则将其从队列中移除并输出。
代码示例(Python):
```python
class Person:
def __init__(self, name, gender):
self.name = name
self.gender = gender
def dance_partner(males, females):
while males and females:
male = males.pop(0)
female = females.pop(0)
print(male.name, '和', female.name, '跳舞')
# 输出未匹配的人员
for male in males:
print(male.name, '没有舞伴')
for female in females:
print(female.name, '没有舞伴')
# 测试
males = [Person('Tom', 'male'), Person('John', 'male'), Person('Mike', 'male')]
females = [Person('Lily', 'female'), Person('Lucy', 'female')]
dance_partner(males, females)
```
输出:
```
Tom 和 Lily 跳舞
John 和 Lucy 跳舞
Mike 没有舞伴
```
阅读全文