数据结构(C实现)------- 顺序队列(循环队列之少用一个存储空间实现) .

本文介绍了循环顺序队列的第三种实现方式,即通过少用一个存储空间来实现。详细阐述了包括初始化、销毁、清空、判断队列状态、获取队列长度、队头队尾元素操作、入队、出队及打印队列在内的基本操作。这种方法与计数器实现的主要区别在于判断队列满的条件不同。
摘要由CSDN通过智能技术生成

      上节已经提到有三种方法来实现循环顺序队列,其中第一种设立标识不常用,最常的就是后两种,上一节已经讨论了用计数器来实现循环顺序队列,这节就用第三种方法,也就是少用一个存储空间来实现循环顺序队列,其基本操作和用计数实现类同,下面是具体实现:

顺序队列(循环队列)类型描述:
//顺序队列的类型描述
#define MAXSIZE 5
typedef int ElemType;
typedef struct{
	ElemType *data;
	int front,rear;
}SqQueue;

 

基本操作:

         1. 初始化顺序队列(循环队列) Init_SqQueue(SqQueue* Q)

void Init_SqQueue(SqQueue* Q){
    Q->data = (SqQueue*)malloc(sizeof(SqQueue) * MAXSIZE);

	Q->front = Q->rear = 0;	
}

 

        2. 销毁顺序队列(循环队列)Destroy_SqQueue(SqQueue* Q)

void Destroy_SqQueue(SqQueue* Q){
	if(Q->data){
		free(Q->data);
		Q->front = Q->rear = 0;
	}
} 

 

       3. 清空顺序队列(循环队列)Clear_SqQueue(SqQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值