队列小记之一

来源:互联网 发布:非农数据看过你 编辑:程序博客网 时间:2024/06/05 07:33

队列,也叫FIFO(First In First Out),先进先出的线性结构,随着参加工作,见到了各种各样的队列,作为环形缓冲区的,栈上分配内存的,堆上分配内存的,写点东西(也没准是一系列的博客)记录一下。

我最早写出的队列大概是这样:

#include <string.h>#define SIZE 100struct Fifo {    int front;    int rear;    int data[SIZE];};//初始化队列void init(struct Fifo *fifo) {    fifo->front = 0;    fifo->rear = 0;    memset(fifo->data, 0, SIZE);}//进队int put(struct Fifo *fifo, int value) {    if ((fifo->rear + 1) % SIZE == 0) {        return -1;    }    fifo->data[fifo->rear] = value;    ++fifo->rear;    return 0;}//出队int get(struct Fifo *fifo, int *pvalue) {    if ((fifo->rear + 1) % SIZE == fifo->front) {        return -1;    }    *pvalue = fifo->data[fifo->front];    ++fifo->front;    return 0;}

没有元素移动,因此开辟的空间也不能重用,只是能实现进队,出队操作,充其量只能算是队列的雏形,但是已经能够说明这种数据结构。解决这个问题将在下一篇:环形队列。

0 0
原创粉丝点击