队列的定义与实现(C语言实现)
小时候,我们做早操的时候或者军训的时候,都排成一列,有头有尾。假设你迟到了,只能站到最后面一个,退场的时候,都是由第一个先走的。这就是队列雏形。
队列的定义
队列是一种特殊的线性表
队列仅在线性表的两端进行操作
队头(Front):取出数据元素的一端
队尾(Rear):插入数据元素的一端
队列不允许在中间部位进行操作!
队列实质上也就是线性表的一种特殊操作形式,在头部删除,获取,在尾部添加。跟栈基本类似,换烫不换药。具体可以参考
栈的实现与操作(C语言实现)
与栈一样,队列同样具备线性和链式两种结构,分别如下:
======================================================================================================
队列的线性形式:
队列的线性形式本质上就是顺序线性表,这里同样采用代码复用的方式,关于顺序线性表的代码就不贴了,具体可以参阅顺序线性表的实现及操作(C语言实现)
头文件:
#ifndef _SEQQUEUE_H_
#define _SEQQUEUE_H_
typedef void SeqQueue;
SeqQueue* SeqQueue_Create(int capacity);
void SeqQueue_Destroy(SeqQueue* queue);
void SeqQueue_Clear(SeqQueue* queue);
int SeqQueue_Append(SeqQueue* queue, void* item);
void* SeqQueue_Retrieve(SeqQueue* queue);
void* SeqQueue_Header(SeqQueue* queue);
int SeqQueue_Length(SeqQueue* queue);
int SeqQueue_Capac