用C++利用队列实现输出杨辉三角,理解算法。
时间: 2024-05-06 20:20:30 浏览: 87
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10
typedef struct Queue {
int data[MAX_SIZE];
int front;
int rear;
} Queue;
// 初始化队列
void init(Queue *q) {
q->front = -1;
q->rear = -1;
}
// 入队
void enqueue(Queue *q, int x) {
if (q->rear == MAX_SIZE - 1) {
printf("Queue is full.\n");
return;
}
q->data[++q->rear] = x;
}
// 出队
int dequeue(Queue *q) {
if (q->front == q->rear) {
printf("Queue is empty.\n");
return -1;
}
return q->data[++q->front];
}
// 计算杨辉三角
void printYangHuiTriangle(int n) {
Queue q;
init(&q);
enqueue(&q, 1);
for (int i = 1; i <= n; i++) {
int pre = 0;
for (int j = 1; j <= i; j++) {
int cur = dequeue(&q);
printf("%d ", cur + pre);
pre = cur;
if (q.rear < MAX_SIZE - 1) {
enqueue(&q, cur + pre);
}
}
printf("\n");
init(&q); // 重新初始化队列
enqueue(&q, 1);
}
}
int main() {
int n;
printf("Enter the number of rows of YangHui Triangle: ");
scanf("%d", &n);
printYangHuiTriangle(n);
return 0;
}
```
阅读全文
相关推荐


















