C的数据结构---顺序队列

队列是一种特殊的线性表

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

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

队尾(Rear):播入数据元素的一端
队列不允许在中间部位进行操作

 

SeqQueue.h


#include "seqlist_head.h"

typedef void SeqQueue;

SeqQueue* SeqQueue_Creat(int capacity);

void SeqQueue_Destroy(SeqQueue *pqueue);

void SeqQueue_Clear(SeqQueue *pqueue);

int SeqQueue_Enter(SeqQueue *pqueue);

void* SeqQueue_Out(SeqQueue *pqueue);

void* SeqQueue_Header(SeqQueue *pqueue);

int SeqQueue_Length(SeqQueue *pqueue);

int SeqQueue_Capacity(SeqQueue *pqueue);

.cpp

#include "Seq_Queue.h"

//队列相当于一个特殊的线性表

SeqQueue* SeqQueue_Creat(int capacity)
{
	return SeqList_Create(capacity);
}

void SeqQueue_Destroy(SeqQueue *pqueue)
{
	SeqList_Destroy(pqueue);
}


void SeqQueue_Clear(SeqQueue *pqueue)
{
	SeqList_Clear(pqueue);
}

int SeqQueue_Enter(SeqQueue *pqueue,void *item)
{
	return SeqList_Insert(pqueue, (SeqListNode*)item, SeqList_Length(pqueue));
}

void* SeqQueue_Out(SeqQueue *pqueue)
{
	return SeqList_Delete(pqueue, 0);
}

void* SeqQueue_Header(SeqQueue *pqueue)
{
	return SeqList_Get(pqueue, 0);
}


int SeqQueue_Length(SeqQueue *pqueue)
{
	return SeqList_Length(pqueue);
}

int SeqQueue_Capacity(SeqQueue *pqueue)
{
	return SeqList_Capacity(pqueue);
}

main.cpp

int main()
{
	SeqQueue *pqueue = SeqQueue_Creat(10);
	int arr[10] = { 0 };
	for (int i = 0; i < 5; i++)
	{
		arr[i] = i + 1;
		SeqQueue_Enter(pqueue, (void*)&arr[i]);  //入队列
	}
	printf("SeqQueue_Length:%d \n", SeqQueue_Length(pqueue));
	printf("SeqQueue_Header:%d \n", *(int*)SeqQueue_Header(pqueue));
	printf("SeqQueue_Capacity:%d \n", SeqQueue_Capacity(pqueue));
	printf("SeqQueue_Out : ");
	while (SeqQueue_Length(pqueue)>0)
	{
		printf("%d ", *(int*)SeqQueue_Out(pqueue));
	}
	printf("\n");
	SeqQueue_Destroy(pqueue);
	system("pause");
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值