您的位置:首页 > 其它

实现环形队列各种基本运算的算法(用顺序结构)

2018-02-02 10:29 1096 查看
/* title: 实现环形队列各种基本运算的算法(用顺序结构)
Time:2018-2-2
Author:邹吉祥
School:imnu
*/
#include<stdio.h>
#include<malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct{
ElemType data[MaxSize];
int Front,Rear; //队头Front,队尾Rear;
}SqQueue;

void InitSqQueue(SqQueue*& q){
q=(SqQueue*)malloc(sizeof(SqQueue));
q->Front=0;
q->Rear=0;
}
void Destroy(SqQueue* & q){
free(q);
}

bool enQueue(SqQueue* & q,ElemType  e){   //入队;
if((q->Rear+1)%MaxSize==q->Front)  //队满的情况;
{
return false;
}
q->Rear=(q->Rear+1)%MaxSize;
q->data[q->Rear]=e;
return true;
}

bool deQueue(SqQueue* & q,ElemType & e){  //出;
if(q->Rear==q->Front) //队空的情况下;
{
return false;
}
q->Front=(q->Front+1)%MaxSize;
e=q->data[q->Front];
return true;
}

bool isEmpty(SqQueue * q)
{
return (q->Rear==q->Front);
}

int main()
{
SqQueue* q;
ElemType e;
InitSqQueue(q);  //初始化;
enQueue(q,'a');
enQueue(q,'b');
enQueue(q,'c');
enQueue(q,'d');
deQueue(q,e);
printf("%c\n",e);
}


4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: