含有头文件实现文件的队列c语言输出前二十个斐波那契数列
时间: 2023-10-27 17:24:13 浏览: 94
大一C语言实训20个任务(原创)
5星 · 资源好评率100%
好的,下面是含有头文件和实现文件的队列C语言代码,实现输出前二十个斐波那契数列:
首先,我们需要一个队列的头文件queue.h:
```c
#ifndef QUEUE_H
#define QUEUE_H
#include <stdbool.h>
#define QUEUE_SIZE 100
typedef struct {
int items[QUEUE_SIZE];
int front;
int rear;
} Queue;
void initialize(Queue *pq);
bool is_empty(const Queue *pq);
bool is_full(const Queue *pq);
bool enqueue(int item, Queue *pq);
bool dequeue(int *pitem, Queue *pq);
#endif
```
然后是队列的实现文件queue.c:
```c
#include "queue.h"
void initialize(Queue *pq)
{
pq->front = 0;
pq->rear = -1;
}
bool is_empty(const Queue *pq)
{
return pq->rear < pq->front;
}
bool is_full(const Queue *pq)
{
return pq->rear == QUEUE_SIZE - 1;
}
bool enqueue(int item, Queue *pq)
{
if (is_full(pq)) {
return false;
}
pq->rear++;
pq->items[pq->rear] = item;
return true;
}
bool dequeue(int *pitem, Queue *pq)
{
if (is_empty(pq)) {
return false;
}
*pitem = pq->items[pq->front];
pq->front++;
return true;
}
```
最后,我们使用队列来输出前二十个斐波那契数列:
```c
#include <stdio.h>
#include "queue.h"
int main()
{
Queue q;
int i, n = 20, a = 0, b = 1, c;
initialize(&q);
enqueue(a, &q);
enqueue(b, &q);
printf("The first %d Fibonacci numbers are:\n", n);
for (i = 0; i < n; i++) {
dequeue(&a, &q);
printf("%d ", a);
c = a + b;
enqueue(b, &q);
enqueue(c, &q);
b = c;
}
return 0;
}
```
运行程序后,即可得到输出前二十个斐波那契数列的结果。
阅读全文