FIFO算法测试用例c语言
时间: 2023-07-26 17:06:01 浏览: 107
C数据结构与算法测试例子
下面是一个简单的FIFO算法的测试用例的C语言代码,可以帮助你进行测试:
```c
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 5
typedef struct {
int *buffer;
int head;
int tail;
int count;
} FIFO;
void init_fifo(FIFO *fifo) {
fifo->buffer = (int*)malloc(BUFFER_SIZE * sizeof(int));
fifo->head = 0;
fifo->tail = 0;
fifo->count = 0;
}
void put(FIFO *fifo, int data) {
if (fifo->count == BUFFER_SIZE) {
printf("Error: FIFO is full\n");
return;
}
fifo->buffer[fifo->tail] = data;
fifo->tail = (fifo->tail + 1) % BUFFER_SIZE;
fifo->count++;
}
int get(FIFO *fifo) {
if (fifo->count == 0) {
printf("Error: FIFO is empty\n");
return -1;
}
int data = fifo->buffer[fifo->head];
fifo->head = (fifo->head + 1) % BUFFER_SIZE;
fifo->count--;
return data;
}
int main() {
FIFO fifo;
init_fifo(&fifo);
put(&fifo, 1);
put(&fifo, 2);
put(&fifo, 3);
put(&fifo, 4);
put(&fifo, 5);
put(&fifo, 6); // should give an error message
printf("%d\n", get(&fifo)); // should print 1
printf("%d\n", get(&fifo)); // should print 2
put(&fifo, 7);
put(&fifo, 8);
printf("%d\n", get(&fifo)); // should print 3
printf("%d\n", get(&fifo)); // should print 4
printf("%d\n", get(&fifo)); // should print 5
printf("%d\n", get(&fifo)); // should print 7
printf("%d\n", get(&fifo)); // should print 8
printf("%d\n", get(&fifo)); // should give an error message
return 0;
}
```
这个测试用例会创建一个FIFO结构体,然后调用`put`函数将一些数据添加到FIFO中,接着调用`get`函数从FIFO中取出数据,最后检查FIFO是否被正确地操作。你可以根据需要修改测试用例以测试其他方面的FIFO算法。
阅读全文