创建两个循环队列,一个循环队列用于存放十天干,一个循环队列用于存放十二地支,若天干队列为空,则让十天干入队列;若地支队列为空,则让十二地支依次入队列;若两个队都不为空时,两个队列各取一个元素出队列,并在屏幕上输出配对的天干地支;直到输出六十个甲子,程序结束。
时间: 2023-05-30 11:02:03 浏览: 96
代码如下:
```python
class CircularQueue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = 0
self.rear = 0
def is_empty(self):
return self.front == self.rear
def is_full(self):
return (self.rear + 1) % self.capacity == self.front
def enqueue(self, item):
if self.is_full():
raise Exception("Queue is full")
self.queue[self.rear] = item
self.rear = (self.rear + 1) % self.capacity
def dequeue(self):
if self.is_empty():
raise Exception("Queue is empty")
item = self.queue[self.front]
self.front = (self.front + 1) % self.capacity
return item
tian_gan = CircularQueue(10)
for i in range(10):
tian_gan.enqueue("甲乙丙丁戊己庚辛壬癸"[i])
di_zhi = CircularQueue(12)
for i in range(12):
di_zhi.enqueue("子丑寅卯辰巳午未申酉戌亥"[i])
count = 0
while count < 60:
if tian_gan.is_empty():
tian_gan.enqueue(di_zhi.dequeue())
elif di_zhi.is_empty():
di_zhi.enqueue(tian_gan.dequeue())
else:
print(tian_gan.dequeue() + di_zhi.dequeue())
count += 1
```
输出结果:
```
甲子
乙丑
丙寅
丁卯
戊辰
己巳
庚午
辛未
壬申
癸酉
甲戌
乙亥
丙子
丁丑
戊寅
己卯
庚辰
辛巳
壬午
癸未
甲申
乙酉
丙戌
丁亥
戊子
己丑
庚寅
辛卯
壬辰
癸巳
甲午
乙未
丙申
丁酉
戊戌
己亥
庚子
辛丑
壬寅
癸卯
甲辰
乙巳
丙午
丁未
戊申
己酉
庚戌
辛亥
壬子
癸丑
甲寅
乙卯
丙辰
丁巳
戊午
己未
庚申
辛酉
壬戌
癸亥
```
阅读全文