数据结构---队列

来源:互联网 发布:直通车卡首屏软件 编辑:程序博客网 时间:2024/05/02 04:18
#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;
}
原文:http://blog.csdn.net/arrowcat/archive/2008/04/02/2244307.aspx
原创粉丝点击