#include
#include
//实现队列的数据结构
//队列是只允许队尾插入,队头删除的存储结构
//先来看顺序存储结构(数组实现)
#define OK 1
#define ERROR -1
#define MAX 10 //定义队列的长度
typedef int ElemType;
typedef int Status;
typedef struct {
ElemType data[MAX];
int head;//队头
int tail;//队尾
}Queue;
//初始化操作
Status InitQueue(Queue *Q){
// memset(Q->data,'\0',sizeof(ElemType)*MAX);
Q->head=0;
Q->tail=0;//指向队尾元素的下一个位置
return OK;
}
//产生测试队列
Status CreateQueue(Queue *Q,int n){
//初始化队列
//产生一个长度为n的测试队列
srand(time(0));
int i;
for(i=0;i
Q->data[(Q->tail)++]=rand()%100+1;
}
return OK;
}
//入队操作
Status EnQueue(Queue *Q,ElemType e){
//判断是否队满
if(Q->tail==MAX){
printf("队列已满,不能入队");
return ERROR;
}
Q->data[Q->tail]=e;
++(Q->tail);
return OK;
}
//出队操作
Status DeQueue(Queue *Q,ElemType *e){
//将出队的元素传给e
//判读是否为空队
if(Q->tail==0 ||