数据结构课程设计循环队列实现杨辉三角C语言
时间: 2023-07-11 12:47:03 浏览: 70
以下是使用C语言实现循环队列生成杨辉三角的代码,适合作为数据结构课程设计的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
// 定义循环队列
typedef struct {
int front; // 队首指针
int rear; // 队尾指针
int items[MAX_SIZE]; // 队列元素
} Queue;
// 初始化队列
void init_queue(Queue *q) {
q->front = q->rear = 0;
}
// 判断队列是否为空
int is_empty(Queue *q) {
return q->front == q->rear;
}
// 判断队列是否已满
int is_full(Queue *q) {
return (q->rear + 1) % MAX_SIZE == q->front;
}
// 元素入队
void enqueue(Queue *q, int item) {
if (!is_full(q)) {
q->items[q->rear] = item;
q->rear = (q->rear + 1) % MAX_SIZE;
}
}
// 元素出队
int dequeue(Queue *q) {
if (!is_empty(q)) {
int item = q->items[q->front];
q->front = (q->front + 1) % MAX_SIZE;
return item;
}
return -1;
}
// 生成杨辉三角
void generate_yanghui_triangle(int n) {
Queue q;
init_queue(&q);
enqueue(&q, 1); // 第一行只有一个数字1
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", q.items[j]);
}
printf("\n");
for (int j = 0; j <= i; j++) {
enqueue(&q, dequeue(&q) + q.items[j]);
}
enqueue(&q, 1); // 行末添加数字1
}
}
int main() {
int n;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
generate_yanghui_triangle(n); // 生成n行杨辉三角
return 0;
}
```
在主函数中,通过scanf函数获取用户输入的杨辉三角的行数n,并将n作为参数传递给generate_yanghui_triangle函数。这样就可以根据用户输入的行数生成相应的杨辉三角。代码中还可以添加一些错误处理机制,例如判断用户输入的行数是否超出范围等等。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)