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 }