输入要求如下:
初始化 void InitQueue(LinkQueue& Q);
队列判空 bool IsEmpty(LinkQueue Q);
入队EnQueue(LinkQueue& Q, ElemType x);
出队DeQueue(LinkQueue& Q, ElemType &x);>>
建立一个链式存储的队列,从键盘接收数据入队,当输入“9999”时结束入队操作。
#define Maxsize 10
typedef struct{
int data[Maxsize];
int front,rear;
}Seque;
void InitQ(Seque &q){
q.rear=q.front=0;
}
bool enque(Seque &q,int x){
// if(q.rear==q.front){
// return -1;
// }
q.data[q.rear]=x;
q.rear=(q.rear+1)%Maxsize;
return 0;
}
bool queEmpty(Seque &q){
if(q.rear==q.front){
return 0;
}
else{
return -1;
}
}
bool dequeue(Seque &q,int x){
if(q.rear==q.front){
return -1;
}
x=q.data[q.front];
printf("%d\n",x);
q.front=(q.front+1)%Maxsize;
return 0;
}
int main(){
Seque S;
InitQ(S);
printf("请依次输入入队元素,当输入9999时结束入队\n");
int a=0;
scanf("%d",&a);
while(a!=9999){
enque(S,a);
scanf("%d",&a);
}
printf("开始出队,出队元素如下:\n");
int c=0;
while(c!=5){
c++;
dequeue(S,a);
}
return 0;
}