队列

来源:互联网 发布:乐乎硬盘 编辑:程序博客网 时间:2024/06/05 20:10

队列(先进先出)

  • 队列是一种特殊的线性表
  • 队列仅在线性表的两端进行操作
    • 队头:取出数据元素的一端
    • 队尾:插入数据元素的一端

顺序队列

#ifndef SEQ_QUEUE_H#define SEQ_QUEUE_Htypedef 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_Capacity(SeqQueue* queue);#endif#include <stdio.h>#include <malloc.h>#include "SeqList.h"#include "SeqQueue.h"SeqQueue* SeqQueue_Create(int capacity){    return SeqList_Create(capacity);}void SeqQueue_Destroy(SeqQueue* queue){    SeqList_Destroy(queue);}void SeqQueue_Clear(SeqQueue* queue){    SeqList_clear(queue);}int SeqQueue_Append(SeqQueue* queue,void* item){    return SeqList_Insert(queue,item,SeqList_Length(queue));}void* SeqQueue_Retrieve(SeqQueue* queue){    return SeqLList_Delete(queue,0);}void* SeqQueue_Header(SeqQueue* queue){    return SeqList_Get(queue,0);}int SeqQueue_Length(SeqQueue* queue){    return SeqList_Length(queue);}int SeqQueue_Capacity(SeqQueue* queue){    return SeqList_Capacity(queue);}