数据结构 c语言 用循环队列输出杨辉三角形前7列
时间: 2024-05-08 18:17:39 浏览: 12
以下是使用循环队列输出杨辉三角形前7列的C语言代码:
```
#include <stdio.h>
#define MAX_QUEUE_SIZE 100
typedef struct Queue {
int data[MAX_QUEUE_SIZE];
int front;
int rear;
} Queue;
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
int isEmpty(Queue *q) {
return q->front == q->rear;
}
int isFull(Queue *q) {
return (q->rear + 1) % MAX_QUEUE_SIZE == q->front;
}
int enqueue(Queue *q, int x) {
if (isFull(q)) {
return 0;
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAX_QUEUE_SIZE;
return 1;
}
int dequeue(Queue *q, int *x) {
if (isEmpty(q)) {
return 0;
}
*x = q->data[q->front];
q->front = (q->front + 1) % MAX_QUEUE_SIZE;
return 1;
}
void printYanghuiTriangle(int n) {
Queue q;
initQueue(&q);
enqueue(&q, 1);
for (int i = 0; i < n; i++) {
int prev = 0;
for (int j = 0; j <= i; j++) {
int x;
dequeue(&q, &x);
int curr = prev + x;
printf("%d ", curr);
prev = x;
enqueue(&q, curr);
}
printf("\n");
enqueue(&q, 0);
}
}
int main() {
printYanghuiTriangle(7);
return 0;
}
```
输出:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
```