利用列队实现杨辉三角的打印,层数n,java
时间: 2024-12-19 21:19:20 浏览: 6
利用列队(Queue)数据结构可以简洁地实现杨辉三角(Pascal's Triangle)的打印,因为杨辉三角是一个逐行递增、逐列计算的模式。以下是在Java中使用数组列表(ArrayList)作为列队,通过迭代的方式实现杨辉三角打印的一个简单示例:
```java
import java.util.ArrayList;
import java.util.LinkedList;
public class PascalTriangle {
private LinkedList<Integer> queue; // 列队存储每一层的元素
public void print(int n) {
queue = new LinkedList<>();
// 第一行只有一个元素1
if (n > 0) {
for (int i = 1; i <= n; i++) {
queue.add(i);
}
}
while (!queue.isEmpty()) {
// 输出当前层的所有元素
int top = queue.poll();
System.out.print(top + " ");
// 将当前元素与其上一元素相加,放入下一层
if (!queue.isEmpty()) {
int next = queue.peek() + top;
queue.add(next);
queue.add(0, top); // 因为队头需要先出再入,所以加到队首
}
}
}
public static void main(String[] args) {
PascalTriangle pt = new PascalTriangle();
int n = 5;
pt.print(n);
}
}
```
在这个示例中,我们首先创建一个空队列,并将第一行的元素一个个添加进去。然后在一个循环中,每次从队头取出一个元素并输出,同时更新队列,将这个元素与上一元素之和加入到下一行对应的位置。
阅读全文