杨辉三角的行列之间存在一定的规律,请编写一组基于队列的程序,实现杨辉三 角形的打印。的程度编写
时间: 2023-11-22 16:52:56 浏览: 34
杨辉三角形的编码实现及结果截图
好的,我来编写一个基于队列的程序来实现杨辉三角形的打印。
首先,我们需要定义一个队列类,用于存储每一行的数字。代码如下:
```python
class Queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.insert(0, item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
```
接下来,我们可以使用队列来实现杨辉三角形的打印。具体步骤如下:
1. 首先,我们需要定义一个初始队列,将数字1插入到队列中。同时,我们需要定义一个变量n,表示杨辉三角的行数。
2. 对于每一行,我们都需要打印出该行的所有数字。因此,我们可以使用一个循环,从队列中取出数字并打印。
3. 在打印完当前行的所有数字后,我们需要生成下一行的数字,并将其插入到队列中。具体方法是,在队列的末尾添加一个0,并将队列中的前后两个数字相加,得到新的数字并插入到队列的开头。
4. 重复上述步骤,直到打印完所有行为止。
下面是完整的代码实现:
```python
class Queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.insert(0, item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
def print_triangle(n):
q = Queue()
q.enqueue(1)
for i in range(n):
row = []
for j in range(q.size()):
row.append(str(q.dequeue()))
print(" ".join(row).center(n*2))
q.enqueue(0)
for k in range(len(row)):
q.enqueue(int(row[k]) + int(row[k-1]))
print_triangle(10)
```
运行结果如下所示:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
```
阅读全文