顺序循环队列

 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 }
原文地址:https://www.cnblogs.com/a1225234/p/4670591.html