数据结构与算法系列---队列

本文介绍了使用C语言实现循环队列的方法,并详细解释了队列的初始化、元素入队和出队等基本操作的实现过程。
#include <malloc.h>

#define  OK     1
#define  ERROR  0
#define  OVERFLOW -2

#define  MAXQSIZE  20

typedef 
int QElemType;
typedef 
struct SqQueue
{
    QElemType 
*base;
    
int front;
    
int rear;
}
SqQueue;

//初始化
int InitQueue(SqQueue *Q)
{
    Q
->base=(QElemType *)malloc(sizeof(QElemType)*MAXQSIZE);
    
if(!Q->base)
        
return OVERFLOW;
    Q
->front=Q->rear=0;
    
return OK;
}

//进队列
int EnQueue(SqQueue *Q,QElemType e)
{
    
if((Q->rear+1)%MAXQSIZE==Q->front)
        
return ERROR;
    Q
->base[Q->rear]=e;
    Q
->rear=(Q->rear+1)%MAXQSIZE;
    
return OK;
}

//出队列
int DeQueue(SqQueue *Q,QElemType *e)
{
    
if(Q->front==Q->rear)
        
return ERROR;
    
*e=Q->base[Q->front];
    Q
->front=(Q->front+1)%MAXQSIZE;
    
return OK;
}

//置空
int QueueEmpty(SqQueue Q)
{
    
if(Q.front==Q.rear)
        
return 1;
    
return 0;
}
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值