#include<stdio.h>
#include<stdlib.h>
#define QUEUE_SIZE 100
typedef int ElemType;
typedef struct {
ElemType *base;
ElemType rear;
int queuesize;
}SqQueue;
//初始化顺序队列
int InitSqQueue(SqQueue &Q){
Q.base=(ElemType *)malloc(QUEUE_SIZE*sizeof(ElemType));
Q.rear=0;
Q.queuesize=QUEUE_SIZE;
return 0;
}
//插入元素
int EnSqQueue(SqQueue &Q,ElemType e){
if(Q.rear==Q.queuesize)
return -1;
Q.base[Q.rear++]=e;
return 0;
}
//删除元素
int DeSqQueue(SqQueue &Q,ElemType e){
int i;
if(Q.rear){
e=*Q.base;
for(i=1;i<Q.rear;i++)
Q.base[i-1]=Q.base[i];
Q.rear--;
return e;
}
else
return -1;
}
//得到元素
int GetSqQueue(SqQueue Q,ElemType &e){
if(Q.rear){
e=*Q.base;
return e;
}
else
return -1;
}
//判空
int EmptySqQueue(SqQueue Q){
if(Q.rear==0)
return 1;
else
return 0;
}
//清空顺序队列
int ClearSqQueue(SqQueue &Q){
Q.rear=0;
return 0;
}
int main(){
SqQueue Q;
int e,i;
InitSqQueue(Q);
printf("%d",EmptySqQueue(Q));
printf("\n");
EnSqQueue(Q,2);
EnSqQueue(Q,1);
EnSqQueue(Q,3);
printf("%d",EmptySqQueue(Q));
printf("\n");
GetSqQueue(Q,e);
printf("%d ", e);
printf("\n");
DeSqQueue(Q,e);
printf("%d ",e);
printf("\n");
ClearSqQueue(Q);
printf("%d ",EmptySqQueue(Q));
EnSqQueue(Q,1);
EnSqQueue(Q,2);
EnSqQueue(Q,3);
printf("\n");
for(i=0;i<Q.rear;i++){
printf("%d ",Q.base[i]);
}
return 0;
}
顺序队列学习
最新推荐文章于 2019-01-05 12:38:04 发布