#include<stdio.h>
#include<stdlib.h>
#define MaxSize 10
typedef struct{
int data[MaxSize];
int front,rear;
}SqQueue;
void InitQueue(SqQueue &Q){
Q.rear = Q.front = 0;
}
bool QueueEmpty(SqQueue Q){
if(Q.rear == Q.front){
return true;
}else{
return false;
}
}
bool EnQueue(SqQueue &Q,int e){
if((Q.rear+1)%MaxSize == Q.front){
return false;
}
Q.data[Q.rear] = e;
Q.rear = (Q.rear + 1) % MaxSize;
return true;
}
bool DeQueue(SqQueue &Q,int &e){
if(Q.rear == Q.front){
return false;
}
e = Q.data[Q.front];
Q.front = (Q.front + 1) % MaxSize;
return true;
}
bool GetHead(SqQueue Q,int &e){
if(Q.rear == Q.front){
return false;
}
e = Q.data[Q.front];
return true;
}
void PrintStack(SqQueue Q){
int i = Q.front;
while(i != Q.rear){
printf("\t%d",Q.data[i]);
i = (i + 1)%MaxSize;
}
printf("\n");
}
int main(){
SqQueue Q;
InitQueue(Q);
for(int i = 0; i < 5; i++){
EnQueue(Q,i);
}
PrintStack(Q);//012345678
int x;
if(DeQueue(Q,x)){
printf("\t%d",x);//0
}
printf("\n");
EnQueue(Q,9);
while(!QueueEmpty(Q)){
int e;
if(DeQueue(Q,e)){
printf("\t%d",e);//123456789
}
}
}
王道数据结构:队列的顺序实现-1a(个人)
于 2023-04-30 17:44:38 首次发布