File tree Expand file tree Collapse file tree 1 file changed +10
-11
lines changed Expand file tree Collapse file tree 1 file changed +10
-11
lines changed Original file line number Diff line number Diff line change
1
+ use std:: collections:: VecDeque ;
2
+
1
3
pub struct Queue < T > {
2
- vec : Vec < T > ,
4
+ vec : VecDeque < T > ,
3
5
}
4
6
5
7
impl < T > Queue < T > {
6
8
pub fn new ( ) -> Self {
7
- Queue { vec : Vec :: new ( ) }
9
+ Queue {
10
+ vec : VecDeque :: new ( ) ,
11
+ }
8
12
}
9
13
10
- pub fn enqueue ( & mut self , item : T ) -> bool {
11
- self . vec . push ( item) ;
12
- true
14
+ pub fn enqueue ( & mut self , item : T ) {
15
+ self . vec . push_back ( item) ;
13
16
}
14
17
15
18
pub fn len ( & self ) -> usize {
@@ -21,15 +24,11 @@ impl<T> Queue<T> {
21
24
}
22
25
23
26
pub fn peek ( & self ) -> Option < & T > {
24
- self . vec . first ( )
27
+ self . vec . front ( )
25
28
}
26
29
27
30
pub fn dequeue ( & mut self ) -> Option < T > {
28
- if self . is_empty ( ) {
29
- None
30
- } else {
31
- Some ( self . vec . remove ( 0 ) )
32
- }
31
+ self . vec . pop_front ( )
33
32
}
34
33
}
35
34
You can’t perform that action at this time.
0 commit comments