码迷,mamicode.com
首页 > 其他好文 > 详细

双端队列

时间:2015-07-23 17:37:17      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 #define size 10
 5 struct  squeue
 6 {
 7     int queue[size];
 8     int front,rear;
 9 };
10 void initqueue(squeue *sq)
11 {
12     sq->front=sq->rear=0;
13 }
14 int isempty(squeue *sq)
15 {
16     if(sq->front==sq->rear)
17         return 1;
18     return 0;    
19 }
20 int enqueue(squeue *sq,int e,int de)
21 {
22 
23     if(de==0)
24     {
25         if(sq->front==0)
26         {
27             return 0;
28         }
29         else
30         {
31             sq->front--;
32             sq->queue[sq->front]=e;
33         }
34     }
35     else
36     {
37         if(sq->rear==size)
38         {
39             return 0;
40         }
41         else
42         {
43             sq->queue[sq->rear]=e;
44             sq->rear++;
45         }
46     }
47 }
48 int ouqueue(squeue *sq,int &e,int de)
49 {
50     if(isempty(sq))
51         return 0;
52     if(de==0)
53     {
54         e=sq->queue[sq->front];
55         sq->front++;
56     }
57     else
58     {
59         e=sq->queue[sq->rear-1];
60         sq->rear--;
61     }
62 }
63 int main(int argc, char const *argv[])
64 {
65     squeue s;
66     initqueue(&s);
67     int i,e;
68     for(i=0;i<5;i++)
69         enqueue(&s,i,1);
70     for(i=0;i<5;i++)
71     {
72         ouqueue(&s,e,0);
73         cout<<e<< ;
74         
75     }
76     cout<<endl;
77     for(i=10;i>=6;i--)
78     {
79         enqueue(&s,i,0);
80     }
81     for(i=0;i<5;i++)
82     {
83         ouqueue(&s,e,1);
84         cout<<e<< ;
85     }
86     return 0;
87 }

 

双端队列

标签:

原文地址:http://www.cnblogs.com/a1225234/p/4670893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!