循环队列打印杨辉三角形
时间: 2023-11-07 21:06:10 浏览: 173
杨辉三角形的编码实现及结果截图
循环队列是一种特殊的队列,它可以在队列的两端进行插入和删除操作。而杨辉三角形是一个数学上的三角形,它的每一行都是由二项式系数构成的。下面是使用循环队列打印杨辉三角形的方法:
1.首先,我们需要定义一个循环队列,并初始化队列的大小和队头指针和队尾指针。
2.然后,我们需要将第一行的数字插入到队列中,并打印出来。
3.接下来,我们需要使用循环队列来计算杨辉三角形的每一行。具体的方法是,将队头元素和队尾元素相加,并将结果插入到队列的尾部。然后,将队头指针向后移动一位,将队尾指针向前移动一位。
4.重复步骤3,直到计算出所有的行。
下面是使用循环队列打印杨辉三角形的代码实现:
```
#include <stdio.h>
#define MAX_SIZE 100
int queue[MAX_SIZE];
int front = -1, rear = -1;
void enqueue(int x) {
if ((rear + 1) % MAX_SIZE == front) {
printf("Queue is full\n");
return;
}
if (front == -1) {
front = 0;
rear = 0;
} else {
rear = (rear + 1) % MAX_SIZE;
}
queue[rear] = x;
}
int dequeue() {
if (front == -1) {
printf("Queue is empty\n");
return -1;
}
int x = queue[front];
if (front == rear) {
front = -1;
rear = -1;
} else {
front = (front + 1) % MAX_SIZE;
}
return x;
}
void print_yanghui_triangle(int n) {
enqueue(1);
for (int i = 0; i < n; i++) {
int prev = 0;
for (int j = 0; j <= i; j++) {
int curr = dequeue();
printf("%d ", curr);
enqueue(curr + prev);
prev = curr;
}
printf("\n");
}
}
int main() {
int n;
printf("Enter the number of rows: ");
scanf("%d", &n);
print_yanghui_triangle(n);
return 0;
}
```
阅读全文