打印杨辉三角形数据结构
时间: 2023-11-19 13:51:40 浏览: 93
好的,以下是打印杨辉三角形的 Python 代码:
```python
def print_pascal_triangle(n):
triangle = [[1]]
for i in range(1, n):
row = [1]
for j in range(1, i):
row.append(triangle[i-1][j-1] + triangle[i-1][j])
row.append(1)
triangle.append(row)
for row in triangle:
print(' '.join([str(num) for num in row]).center(n*3))
print_pascal_triangle(5)
```
输出结果为:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
```
相关问题
数据结构打印杨辉三角形
杨辉三角形是一个由数字构成的三角形,它的规律是每个数等于它上方两数之和。下面是一个使用数据结构打印杨辉三角形的示例代码:
```python
def print_yanghui_triangle(n):
triangle = [[1] * (i + 1) for i in range(n)]
for i in range(2, n):
for j in range(1, i):
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
for row in triangle:
print(" ".join(str(num) for num in row))
# 打印一个6行的杨辉三角形
print_yanghui_triangle(6)
```
输出结果:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
打印杨辉三角形用队列
打印杨辉三角形通常使用递归或者动态规划,队列在这方面的应用相对较少直接。然而,如果你想要利用队列数据结构,一种可能的思路是在生成过程中采用广度优先搜索(BFS)的方式,从底层开始逐层填充,并将每一层的节点放入队列。当到达当前行的末尾时,出队并打印,然后继续下一行。
以下是使用Python实现的基本步骤:
1. 创建一个队列,初始时只放第一行的元素(1)。
2. 循环直到达到指定的高度(比如n行):
a. 弹出队首元素,打印出来(作为当前行的第一个数)。
b. 将当前行剩余的数按顺序加入到队列中。
3. 当队列为空时结束循环。
例如:
```python
def print_pascal_triangle(n, queue=[[]]):
if n == 0:
return
# 添加第一行
queue[0].append(1)
for _ in range(n - 1):
# 出队并打印前一个数字
prev_row = queue.pop(0)
print(prev_row)
# 计算并添加当前行
current_row = [1]
current_row.extend([prev_row[i] + prev_row[i+1] for i in range(len(prev_row) - 1)])
current_row.append(1)
queue.append(current_row)
# 使用示例
print_pascal_triangle(5)
```
阅读全文