1
1
#[ derive( Debug ) ]
2
2
struct Deque < T > {
3
- deque : Vec < T >
3
+ deque : Vec < T > ,
4
4
}
5
5
6
6
impl < T > Deque < T > {
7
- fn new ( ) -> Self {
8
- Deque { deque : Vec :: new ( ) }
9
- }
7
+ fn new ( ) -> Self {
8
+ Deque { deque : Vec :: new ( ) }
9
+ }
10
10
11
- fn add_last ( & mut self , item : T ) {
12
- self . deque . push ( item)
13
- }
11
+ fn add_last ( & mut self , item : T ) {
12
+ self . deque . push ( item)
13
+ }
14
14
15
- fn remove_last ( & mut self ) -> Option < T > {
16
- self . deque . pop ( )
17
- }
15
+ fn remove_last ( & mut self ) -> Option < T > {
16
+ self . deque . pop ( )
17
+ }
18
18
19
- fn add_first ( & mut self , item : T ) {
20
- self . deque . insert ( 0 , item)
21
- }
19
+ fn add_first ( & mut self , item : T ) {
20
+ self . deque . insert ( 0 , item)
21
+ }
22
22
23
- fn remove_first ( & mut self ) -> T {
24
- self . deque . remove ( 0 )
25
- }
23
+ fn remove_first ( & mut self ) -> T {
24
+ self . deque . remove ( 0 )
25
+ }
26
26
27
- fn length ( & self ) -> usize {
28
- self . deque . len ( )
29
- }
27
+ fn length ( & self ) -> usize {
28
+ self . deque . len ( )
29
+ }
30
30
31
- fn is_empty ( & self ) -> bool {
32
- self . deque . is_empty ( )
33
- }
31
+ fn is_empty ( & self ) -> bool {
32
+ self . deque . is_empty ( )
33
+ }
34
34
35
- fn peek ( & self ) -> Option < & T > {
36
- self . deque . first ( )
37
- }
35
+ fn peek ( & self ) -> Option < & T > {
36
+ self . deque . first ( )
37
+ }
38
38
39
- fn peek_last ( & self ) -> Option < & T > {
40
- self . deque . last ( )
41
- }
39
+ fn peek_last ( & self ) -> Option < & T > {
40
+ self . deque . last ( )
41
+ }
42
42
}
43
43
44
- fn main ( ) {
45
- let mut deque: Deque < i32 > = Deque :: < i32 > :: new ( ) ;
46
- deque. add_first ( 1 ) ;
47
- deque. add_last ( 2 ) ;
48
- deque. add_first ( 3 ) ;
49
- println ! ( "{:?}" , deque) ;
50
- deque. remove_last ( ) ;
51
- deque. remove_first ( ) ;
52
- println ! ( "{:?}" , deque) ;
53
- println ! ( "length: {:?}, is empty? {:?}" , deque. length( ) , deque. is_empty( ) ) ;
54
- deque. add_first ( 1 ) ;
55
- deque. add_last ( 2 ) ;
56
- deque. add_first ( 3 ) ;
57
- println ! ( "{:?}, {:?}" , deque. peek( ) , deque. peek_last( ) ) ;
58
- }
44
+ fn main ( ) {
45
+ let mut deque: Deque < i32 > = Deque :: < i32 > :: new ( ) ;
46
+ deque. add_first ( 1 ) ;
47
+ deque. add_last ( 2 ) ;
48
+ deque. add_first ( 3 ) ;
49
+ println ! ( "{:?}" , deque) ;
50
+ deque. remove_last ( ) ;
51
+ deque. remove_first ( ) ;
52
+ println ! ( "{:?}" , deque) ;
53
+ println ! (
54
+ "length: {:?}, is empty? {:?}" ,
55
+ deque. length( ) ,
56
+ deque. is_empty( )
57
+ ) ;
58
+ deque. add_first ( 1 ) ;
59
+ deque. add_last ( 2 ) ;
60
+ deque. add_first ( 3 ) ;
61
+ println ! ( "{:?}, {:?}" , deque. peek( ) , deque. peek_last( ) ) ;
62
+ }
0 commit comments