File tree Expand file tree Collapse file tree 1 file changed +6
-10
lines changed Expand file tree Collapse file tree 1 file changed +6
-10
lines changed Original file line number Diff line number Diff line change @@ -38,13 +38,9 @@ impl <T: Copy Ord> PriorityQueue<T> {
38
38
39
39
/// Pop the greatest item from the queue - fails if empty
40
40
fn pop ( & mut self ) -> T {
41
- let last = self . data . pop ( ) ;
42
- if self . is_not_empty ( ) {
43
- let ret = self . data [ 0 ] ;
44
- self . data [ 0 ] = last;
45
- self . siftup ( 0 ) ;
46
- ret
47
- } else { last }
41
+ let mut item = self . data . pop ( ) ;
42
+ if self . is_not_empty ( ) { item <-> self . data [ 0 ] ; self . siftup ( 0 ) ; }
43
+ item
48
44
}
49
45
50
46
/// Pop the greatest item from the queue - None if empty
@@ -70,10 +66,10 @@ impl <T: Copy Ord> PriorityQueue<T> {
70
66
71
67
/// Optimized version of a pop followed by a push - fails if empty
72
68
fn replace ( & mut self , item : T ) -> T {
73
- let ret = self . data [ 0 ] ;
74
- self . data [ 0 ] = item ;
69
+ let mut item = item ;
70
+ item <-> self . data [ 0 ] ;
75
71
self . siftup ( 0 ) ;
76
- ret
72
+ item
77
73
}
78
74
79
75
/// Consume the PriorityQueue and return the underlying vector
You can’t perform that action at this time.
0 commit comments