已经帮你写出了所有要用到的函数,其他的操作你自己完成吧
#include
#include
#define maxsize 100
typedef char Elemtype;
typedef struct
{
Elemtype *base;
int rear;//队尾指针
int front;//队头指针
}QUEUE;
void INITQUEUE(QUEUE &Q)//初始化空队列
{
Q.base=(Elemtype*)malloc(maxsize*sizeof(Elemtype));
if(!Q.base)return;
Q.rear=Q.front=0;
}
bool EMPTY(QUEUE Q)//判队空函数
{
if(Q.rear==Q.front)return true;
return false;
}
void ADDQ(QUEUE &Q,Elemtype x)//入队列操作
{
if((Q.rear+1)%maxsize==Q.front)
{
printf("QUEUE Overflow!");
return;
}
Q.base[Q.rear]=x;
Q.rear=(Q.rear+1)%maxsize;
}
void DELQ(QUEUE &Q)//出队列操作
{
if(Q.rear==Q.front)
{
printf("Empty QUEUE!");
return;
}
Q.front=(Q.front+1)%maxsize;
}
Elemtype GETFRONT(QUEUE Q)//取队头元素操作
{
return Q.base[Q.front];
}
void CLEAR(QUEUE &Q)//队列置空操作
{
Q.rear=Q.front=0;
}
int CURRENT_SIZE(QUEUE Q)//求队列中元素个数的操作
{
return (Q.rear-Q.front+maxsize)%maxsize;
}
#include
#include
#define maxsize 100
typedef char Elemtype;
typedef struct
{
Elemtype *base;
int rear;//队尾指针
int front;//队头指针
}QUEUE;
void INITQUEUE(QUEUE &Q)//初始化空队列
{
Q.base=(Elemtype*)malloc(maxsize*sizeof(Elemtype));
if(!Q.base)return;
Q.rear=Q.front=0;
}
bool EMPTY(QUEUE Q)//判队空函数
{
if(Q.rear==Q.front)return true;
return false;
}
void ADDQ(QUEUE &Q,Elemtype x)//入队列操作
{
if((Q.rear+1)%maxsize==Q.front)
{
printf("QUEUE Overflow!");
return;
}
Q.base[Q.rear]=x;
Q.rear=(Q.rear+1)%maxsize;
}
void DELQ(QUEUE &Q)//出队列操作
{
if(Q.rear==Q.front)
{
printf("Empty QUEUE!");
return;
}
Q.front=(Q.front+1)%maxsize;
}
Elemtype GETFRONT(QUEUE Q)//取队头元素操作
{
return Q.base[Q.front];
}
void CLEAR(QUEUE &Q)//队列置空操作
{
Q.rear=Q.front=0;
}
int CURRENT_SIZE(QUEUE Q)//求队列中元素个数的操作
{
return (Q.rear-Q.front+maxsize)%maxsize;
}
楼上开玩笑了,别人是要做设计,你居然把设计要求当成选择题了...汗!