数据结构—Java语言描述利用队列实现杨辉三角的打印完整代码
时间: 2024-12-19 19:27:26 浏览: 15
在Java中,我们可以使用队列数据结构来动态地生成并打印杨辉三角。杨辉三角是一个数学术语,其中每个数字由上一行的相邻数字相加得到。下面是一个简单的Java程序示例,它使用了递归的方式结合队列来存储每一行的数据:
```java
import java.util.LinkedList;
import java.util.Queue;
public class YangHuiTriangle {
public static void print(int n) {
Queue<int[]> queue = new LinkedList<>();
// 添加第一行
int[] row1 = {1};
queue.offer(row1);
for (int i = 1; i < n; ++i) {
int[] newRow = new int[i + 1];
newRow[0] = newRow[i] = 1; // 设置首尾元素
// 计算中间元素
if (!queue.isEmpty()) {
int[] currentRow = queue.poll();
for (int j = 1; j < currentRow.length - 1; ++j)
newRow[j] = currentRow[j - 1] + currentRow[j];
}
queue.offer(newRow);
System.out.println(Arrays.toString(newRow));
}
}
public static void main(String[] args) {
int size = 5; // 要打印的杨辉三角的大小
print(size);
}
}
```
在这个程序中,我们首先创建了一个队列,并添加了一维数组`row1`表示第一行。然后在一个循环中,每次从队列中取出当前行(如果非空),计算新行的中间元素,并将结果放入新数组。接着,新数组会被添加回队列,直到达到指定的行数。
运行这个程序,它会打印出前n行的杨辉三角。
阅读全文