数据结构 线性表顺序队列

//线性表顺序队列函数声明
#ifndef _MY_SEQQUEUE_H_
#define _MY_SEQQUEUE_H_

typedef void SeqQueue;

//创建线性表顺序队列
SeqQueue* SeqQueue_Create(int capacity);

//销毁线性表顺序队列
int SeqQueue_Destroy(SeqQueue* queue);

//清空线性表顺序队列
int 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 //_MY_SEQQUEUE_H_
//线性表顺序队列代码实现
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"SeqList.h"//引用线性顺序表动态库
#include"SeqQueue.h"

//创建线性表顺序队列
SeqQueue* SeqQueue_Create(int capacity){
    return SeqList_Create(capacity);
}

//销毁线性表顺序队列
int SeqQueue_Destroy(SeqQueue* queue){
    return SeqList_Destroy(&queue);
}

//清空线性表顺序队列
int SeqQueue_Clear(SeqQueue* queue){
    return SeqList_Clear(queue);
}

//线性表顺序队列队尾添加元素
int SeqQueue_Append(SeqQueue* queue, void* item){
    return SeqList_Insert(queue, item, SeqList_Length(queue));
}

//线性表顺序队列队头删除元素
void* SeqQueue_Retrieve(SeqQueue* queue){
    return SeqList_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);
}
//线性表顺序队列测试代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"SeqQueue.h"

void Test(){
    int i = 0;
    //创建一个队列
    SeqQueue * queue = SeqQueue_Create(10);
    //队列中插入元素
    for (i = 0; i < 5; i++)
    {
        SeqQueue_Append(queue, (void *)(i + 1));
    }
    //获取队列长度
    printf("队列的长度是%d
", SeqQueue_Length(queue));
    //获取队列的最大容量
    printf("队列的最大容量是%d
", SeqQueue_Capacity(queue));
    //获取队头元素
    printf("队头元素是%d
", (int)SeqQueue_Header(queue));
    //删除队头元素
    SeqQueue_Retrieve(queue);
    printf("删除之后队头元素是%d
", (int)SeqQueue_Header(queue));
    //销毁队列
    SeqQueue_Destroy(queue);
}

void main(){
    Test();
    system("pause");
}

原文地址:https://www.cnblogs.com/zhanggaofeng/p/5713806.html