diff --git a/src/dary/heap.rs b/src/dary/heap.rs index 5e5ee5d..ff44828 100644 --- a/src/dary/heap.rs +++ b/src/dary/heap.rs @@ -207,7 +207,11 @@ where /// assert!(slice.contains(&("z", 99))); /// ``` pub(crate) fn as_slice(&self) -> &[(N, K)] { - &self.tree[offset::()..] + if self.tree.is_empty() { + &self.tree + } else { + &self.tree[offset::()..] + } } } diff --git a/tests/priority_queue_tests/as_slice.rs b/tests/priority_queue_tests/as_slice.rs index ba9952c..644d898 100644 --- a/tests/priority_queue_tests/as_slice.rs +++ b/tests/priority_queue_tests/as_slice.rs @@ -20,6 +20,7 @@ pub fn test_as_slice(mut pq: DaryHeap) { pq.clear(); assert!(pq.is_empty()); let mut vec = vec![]; + assert!(pq.as_slice().is_empty()); let mut rng = rand::rng(); for node in 0..N {