File tree Expand file tree Collapse file tree 1 file changed +13
-26
lines changed
Linked_List/1670.Design-Front-Middle-Back-Queue Expand file tree Collapse file tree 1 file changed +13
-26
lines changed Original file line number Diff line number Diff line change 1
1
class FrontMiddleBackQueue {
2
- int arr[1000 ];
3
- int n = 0 ;
2
+ vector<int >q;
4
3
public:
5
4
FrontMiddleBackQueue () {
6
5
}
7
6
8
7
void pushFront (int val)
9
8
{
10
- for (int i=n; i>=1 ; i--)
11
- arr[i] = arr[i-1 ];
12
- arr[0 ] = val;
13
- n++;
9
+ q.insert (q.begin (),val);
14
10
}
15
11
16
12
void pushMiddle (int val)
17
13
{
18
- int i = n-1 ;
19
- for (int i=n; i>= max (1 ,n/2 ); i--)
20
- arr[i] = arr[i-1 ];
21
- arr[n/2 ] = val;
22
- n++;
14
+ q.insert (q.begin ()+q.size ()/2 , val);
23
15
}
24
16
25
17
void pushBack (int val)
26
18
{
27
- arr[n] = val;
28
- n++;
19
+ q.push_back (val);
29
20
}
30
21
31
22
int popFront ()
32
23
{
33
- if (n==0 ) return -1 ;
34
- int ret = arr[0 ];
35
- for (int i=0 ; i<n-1 ; i++)
36
- arr[i] = arr[i+1 ];
37
- n--;
24
+ if (q.empty ()) return -1 ;
25
+ int ret = q.front ();
26
+ q.erase (q.begin ());
38
27
return ret;
39
28
}
40
29
41
30
int popMiddle ()
42
31
{
43
- if (n==0 ) return -1 ;
44
- int ret = arr[(n-1 )/2 ];
45
- for (int i=(n-1 )/2 ; i<n; i++)
46
- arr[i] = arr[i+1 ];
47
- n--;
32
+ if (q.empty ()) return -1 ;
33
+ int ret = *(q.begin ()+(q.size ()-1 )/2 );
34
+ q.erase (q.begin ()+(q.size ()-1 )/2 );
48
35
return ret;
49
36
}
50
37
51
38
int popBack ()
52
39
{
53
- if (n== 0 ) return -1 ;
54
- int ret = arr[n- 1 ] ;
55
- n--;
40
+ if (q. empty () ) return -1 ;
41
+ int ret = q. back () ;
42
+ q. pop_back ();
56
43
return ret;
57
44
}
58
45
};
You can’t perform that action at this time.
0 commit comments