1 #include <iostream> 2 using namespace std; 3 #define size 10 4 struct squeue 5 { 6 int queue[size]; 7 int front,rear; 8 int flag; 9 }; 10 void initsqueue(squeue *sq) 11 { 12 sq->front=0; 13 sq->rear=0; 14 sq->flag=0; 15 } 16 int isempty(squeue *sq) 17 { 18 if(sq->rear==sq->front&&sq->flag==0) 19 return 1; 20 return 0; 21 } 22 int isfull(squeue *sq) 23 { 24 if(sq->rear==sq->front&&sq->flag==1) 25 return 1; 26 return 0; 27 } 28 int enqueue(squeue *sq,int e) 29 { 30 if(isfull(sq)) 31 return 0; 32 sq->queue[sq->rear]=e; 33 sq->rear++; 34 sq->rear=sq->rear%10; /*顺序队列*/ 35 sq->flag=1; 36 return 1; 37 } 38 int ouquque(squeue *sq,int &e) 39 { 40 if(isempty(sq)) 41 return 0; 42 e=sq->queue[sq->front]; 43 sq->front++; 44 sq->front%=10; 45 sq->flag=0; 46 return 1; 47 } 48 int main() 49 { 50 squeue q; 51 int e,i; 52 initsqueue(&q); 53 for(i=0;i<10;i++) 54 { 55 enqueue(&q,i); 56 cout<<i<<"rear"<<q.rear<<endl; 57 } 58 for(i=0;i<5;i++) 59 { 60 ouquque(&q,e); 61 cout<<e<<"front"<<q.front<<endl; 62 } 63 for(i=0;i<7;i++) 64 { 65 enqueue(&q,i); 66 cout<<i<<"rear"<<q.rear<<endl; 67 } 68 }