数据结构舞伴问题代码
时间: 2024-04-22 17:18:57 浏览: 127
数据结构中的舞伴问题是一个经典的问题,它可以通过使用队列来解决。舞伴问题的场景是,有一群男生和一群女生排成两个队列,我们需要将他们按照一定规则配对。
以下是一个简单的舞伴问题的代码示例:
```python
class Person:
def __init__(self, name, gender):
self.name = name
self.gender = gender
def find_dance_partners(males, females):
male_queue = []
female_queue = []
pairs = []
# 将男生和女生分别加入对应的队列
for male in males:
male_queue.append(male)
for female in females:
female_queue.append(female)
# 配对过程
while male_queue and female_queue:
male = male_queue.pop(0)
female = female_queue.pop(0)
pairs.append((male.name, female.name))
return pairs
# 测试数据
males = [Person("Tom", "male"), Person("John", "male"), Person("Mike", "male")]
females = [Person("Alice", "female"), Person("Emily", "female"), Person("Lily", "")]
pairs = find_dance_partners(males, females)
for pair in pairs:
print(pair)
```
这段代码中,我们定义了一个`Person`类来表示每个人,包括姓名和性别。然后我们定义了`find_dance_partners`函数来实现舞伴配对的逻辑。在函数中,我们使用两个队列`male_queue`和`female_queue`来分别存储男生和女生。然后我们通过循环从队列中取出一个男生和一个女生,将他们配对,并将配对结果存入`pairs`列表中。最后返回配对结果。
阅读全文