队列的定义
队列是一种特殊的线性表
队列仅在线性表的两端进行操作
队头(front):取出数据元素的一端
队尾(rear):插入数据元素的一端
队列不允许在中间部位进行操作!
队列的性质
队列的一些常用操作
创建队列
销毁队列
清空队列
进队列
出队列
获取队头元素
获取队列的长度
队列的顺序存储实现
代码实现
复用前面的顺序表实现顺序队列
#include "SeqList.h" #include "SeqQueue.h" SeqQueue* SeqQueue_Create(int capacity) // O(1) { return SeqList_Create(capacity); } void SeqQueue_Destroy(SeqQueue* queue) // O(1) { SeqList_Destroy(queue); } void SeqQueue_Clear(SeqQueue* queue) // O(1) { SeqList_Clear(queue); } int SeqQueue_Append(SeqQueue* queue, void* item) // O(1) { return SeqList_Insert(queue, item, SeqList_Length(queue)); } void* SeqQueue_Retrieve(SeqQueue* queue) // O(n) { return SeqList_Delete(queue, 0); } void* SeqQueue_Header(SeqQueue* queue) // O(1) { return SeqList_Get(queue, 0); } int SeqQueue_Length(SeqQueue* queue) // O(1) { return SeqList_Length(queue); } int SeqQueue_Capacity(SeqQueue* queue) // O(1) { return SeqList_Capacity(queue); }