Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. pub mod base {
  2. use std::fmt::Debug;
  3.  
  4. #[derive(Default, Debug, Clone)]
  5. pub struct MaxComparator {}
  6. pub trait Comparator: Default + Debug + Clone {}
  7. impl Comparator for MaxComparator {}
  8.  
  9. #[derive(Debug)]
  10. pub struct BinaryHeap<T, C>
  11. {
  12. vec: Vec<T>,
  13. cmp: C,
  14. }
  15.  
  16. impl<T, C> From<Vec<T>> for BinaryHeap<T, C>
  17. where C: Comparator
  18. {
  19. fn from(vec: Vec<T>) -> Self {
  20. BinaryHeap {
  21. vec,
  22. cmp: C::default(),
  23. }
  24. }
  25. }
  26. }
  27.  
  28. pub type BinaryHeap<T> = base::BinaryHeap<T, base::MaxComparator>;
  29.  
  30. fn main() {
  31. let heap = BinaryHeap::from(vec![0, 1, 2]);
  32. println!("{:?}", heap);
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement