X-Git-Url: https://i11git.iti.kit.edu/anon-gitweb/?p=Mitarbeiter%2FTim-Zeitz%2Fstud-rust-base.git;a=blobdiff_plain;f=src%2Findex_heap.rs;fp=src%2Findex_heap.rs;h=5850ae802a3005775e593a86e1d6091931421d18;hp=477dc879cf610d95dd8c2658bde1a3227a257cf1;hb=06c34a2e9b80e195c51932f62a99cce4f0110000;hpb=0cce9e796127fea9c3387e05ce2c68a1eeb0a83c diff --git a/src/index_heap.rs b/src/index_heap.rs index 477dc87..5850ae8 100644 --- a/src/index_heap.rs +++ b/src/index_heap.rs @@ -123,19 +123,19 @@ impl IndexdMinHeap { } /// Updates the key of an element if the new key is smaller than the old key. - /// Does nothing if the new key is larger. - /// Panics if the element is not part of the queue. + /// Panics if the element is not part of the queue or if the new key is larger. pub fn decrease_key(&mut self, element: T) { let position = self.positions[element.as_index()]; + assert!(element <= self.data[position]); self.data[position] = element; self.move_up_in_tree(position); } /// Updates the key of an element if the new key is larger than the old key. - /// Does nothing if the new key is smaller. - /// Panics if the element is not part of the queue. + /// Panics if the element is not part of the queue or if the new key is smaller. pub fn increase_key(&mut self, element: T) { let position = self.positions[element.as_index()]; + assert!(element >= self.data[position]); self.data[position] = element; self.move_down_in_tree(position); }