//线性表顺序队列函数声明 #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"); }