队列线性表的c语言实现方式 seqqueue.h 和 seqqueue.c

来源:互联网 发布:linux jdk6安装教程 编辑:程序博客网 时间:2024/06/07 23:41

seqqueue.h 文件

#ifndef _SEQ_QUEUE_H_#define _SEQ_QUEUE_H_#include <stdio.h>#include <stdlib.h>#include <string.h>typedef void Queue;#ifndef bool#define bool int#define true 1#define false 0#endifQueue* SeqQueue_Create(int capacity);bool SeqQueue_Destory(Queue* queue);bool SeqQueue_Clear(Queue* queue);//线性队列中添加元素bool SeqQueue_Append(Queue* queue, void* item);//队列中出元素void* SeqQueue_Retrieve(Queue* queue);//队列头元素void* SeqQueue_Header(Queue* queue);int SeqQueue_GetLength(Queue* queue);int SeqQueue_GetCapacity(Queue* queue);#endif

seqqueue.c 文件

#include <stdio.h>#include <stdlib.h>#include <string.h>#include "seqlist.h"#include "seqqueue.h"//队列的线性存储//创建线性队列相当于创建线性表Queue* SeqQueue_Create(int capacity){    return SeqList_Create(capacity);}//销毁线性队列相当于销毁线性表bool SeqQueue_Destory(Queue* queue){    return SeqList_Destroy(queue);}//清空线性队列相当于清空线性表bool SeqQueue_Clear(Queue* queue){    return SeqList_Clear(queue);}//向队列中插入一个元素相当于在线性表尾部插入或者头部插入,取其一//假定尾查法bool SeqQueue_Append(Queue* queue, void* item){    return SeqList_InsertOneNode(queue,item,SeqList_GetLength(queue));}//队列中出元素相当于从线性表中删除0号位置元素void* SeqQueue_Retrieve(Queue* queue){    return SeqList_DeleteOneNode(queue,0);}//获取队列的头部相当于获取线性表的0号位置void* SeqQueue_Header(Queue* queue){    return SeqList_GetOneNode(queue,0);}//获取线性队列的长度相当于获取线性表的长度int SeqQueue_GetLength(Queue* queue){    return SeqList_GetLength(queue);}//获取线性队列的容量相当于获取线性表的容量int SeqQueue_GetCapacity(Queue* queue){    return SeqList_GetCapacity(queue);}/**********************测试代码************************//*void main(){    int i = 0;    int aa[10] = {0};    Queue* queue = NULL;    queue = SeqQueue_Create(10);    if (queue == NULL)    {        printf("创建线性队列失败");    }    for (i = 0; i < 5; i ++)    {        aa[i] = aa[i] + i + 1;        SeqQueue_Append(queue,&aa[i]);    }    printf("线性队列的容量是:%d \n",SeqQueue_GetCapacity(queue));    printf("线性队列的长度是:%d \n",SeqQueue_GetLength(queue));    printf("线性队列的头元素是:%d \n",*((int*)SeqQueue_Header(queue)));    //出队列    while(SeqQueue_GetLength(queue) > 0)    {        printf("线性队列依次出元素:%d \n",*((int*)SeqQueue_Retrieve(queue)));    }    //销毁队列    SeqQueue_Destory(queue);    system("pause");}*/

上述可能会调用其它头文件或源文件,如果遇到,请翻看我的其它博客,对头文件或源文件的实现方式。
good luck !

原创粉丝点击