杨辉三角形循环队列c++
时间: 2023-11-06 19:08:01 浏览: 88
循环队列 杨辉三角
杨辉三角形是一个由数字构成的三角形,具有以下特点:
1. 每一行的两个端点数字都为1。
2. 每一行的中间数字都等于上一行相邻两个数字之和。
循环队列是一种数据结构,它可以在固定大小的环形缓冲区中存储元素,并支持高效地插入和删除操作。
下面是一个使用循环队列的实现杨辉三角形的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 10
void printYangHuiTriangle(int n) {
int queue[MAX_SIZE];
int front = -1, rear = -1;
enqueue(queue, &rear, n);
while (front != rear) {
int size = getSize(front, rear);
for (int i = 0; i < size; i++) {
int num = dequeue(queue, &front);
printf("%d ", num);
if (num > 1) {
enqueue(queue, &rear, num - 1);
enqueue(queue, &rear, num - 1);
}
}
printf("\n");
}
}
void enqueue(int queue[], int *rear, int num) {
*rear = (*rear + 1) % MAX_SIZE;
queue[*rear] = num;
}
int dequeue(int queue[], int *front) {
*front = (*front + 1) % MAX_SIZE;
return queue[*front];
}
int getSize(int front, int rear) {
if (rear >= front)
return rear - front;
else
return MAX_SIZE - front + rear;
}
int main() {
int n;
printf("请输入杨辉三角形的行数:");
scanf("%d", &n);
printYangHuiTriangle(n);
return 0;
}
```
阅读全文