数据结构实现杨辉三角
时间: 2023-11-26 21:02:35 浏览: 31
数据结构实现杨辉三角的方法有很多种,其中一种比较常见的方法是使用队列。具体实现方法如下:
1. 定义一个队列,用于存储每一层的杨辉三角元素。
2. 将第一层的元素1入队。
3. 外层循环控制循环到杨辉三角的第几层,内层循环用于完成当前层杨辉三角元素的计算。
4. 在内层循环中,先将队头元素出队,然后取出队头元素的下一个元素,将两者相加得到当前位置的元素,再将该元素入队。
5. 每一层的最后一个元素后面再入队一个0,用于分隔不同层的元素。
6. 循环结束后,队列中存储的就是完整的杨辉三角。
具体实现代码如下所示:
```
void ractangle(queue*q,int n){
enq(q,1);
int i,j,s,t=0;
for(i=1;i<n+1;i++){//大循环,用以控制循环到杨辉三角第几层
enq(q,0);
for(j=0;j<i;j++){//小循环,用以完成当前层杨辉三角元素的计算
t=deq(q);
s=gethead(q);
s+=t;
enq(q,s);
}
}
}
```
相关问题
数据结构打印杨辉三角形
杨辉三角形是一个由数字构成的三角形,它的规律是每个数等于它上方两数之和。下面是一个使用数据结构打印杨辉三角形的示例代码:
```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
```
数据结构打印杨辉三角
可以使用二维数组来表示杨辉三角,每一行的第一个和最后一个数均为1,其余数为上一行相邻两数之和。代码如下:
```c++
#include <iostream>
using namespace std;
const int maxn = 20;
int a[maxn][maxn];
int main() {
int n;
cin >> n;
// 初始化第一行为1
a[1][1] = 1;
// 构造杨辉三角
for (int i = 2; i <= n; i++) {
a[i][1] = 1;
a[i][i] = 1;
for (int j = 2; j < i; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 输出杨辉三角
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
```