队列的定义

队列是一种特殊的线性表

队列仅在线性表的两端进行操作

队头(front):取出数据元素的一端

队尾(rear):插入数据元素的一端

队列不允许在中间部位进行操作!

队列的性质

第17课——队列的定义与实现

队列的一些常用操作

创建队列

销毁队列

清空队列

进队列

出队列

获取队头元素

获取队列的长度

队列的顺序存储实现

第17课——队列的定义与实现

代码实现

 复用前面的顺序表实现顺序队列

#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);
}
SeqQueue.c

相关文章: